我的客户正在使用WordPress进行房地产列表。目前,她没有清理她的列表和磁盘空间不足。什么WordPress配置可以让WordPress删除与已删除的页面/帖子相关联的图片。按照现在的情况,我必须注意图片,然后进入媒体库。
答案 0 :(得分:1)
这应该可以解决问题......
function o99_delete_post_children($post_id) {
global $wpdb;
$child_atts = $wpdb->get_col("SELECT ID FROM {$wpdb->posts} WHERE post_parent = $post_id AND post_type = 'attachment'");
foreach ( $child_atts as $id )
wp_delete_attachment($id);
}
add_action('before_delete_post', ' o99_delete_post_children');
add_action('trash_post', 'o99_delete_post_children')
免责声明:从未尝试过此操作,因此请先在非生产环境中进行测试 - 或者使用,风险自负 ......
编辑我:感谢@Dale Sattler发表评论
编辑II:添加add_action('trash_post', 'o99_delete_post_children');
以支持管理员列表帖子中的“移至垃圾箱”操作(而不是逐个删除)
答案 1 :(得分:1)
你可以将它放在一个独立的文件中,以便清理'在已经删除的帖子之后
<?php
/* Short and sweet */
define('WP_USE_THEMES', false);
require('./wp-blog-header.php');
$unattachedmediaargs = array(
'post_type' => 'attachment',
'numberposts' => -1,
'post_status' => null,
'post_parent' => 0
);
$unattachedmedia = get_posts($unattachedmediaargs);
if ($unattachedmedia) {
foreach ($unattachedmedia as $unattached) {
wp_delete_attachment( $unattached->ID, true );
}
}
?>