发布后删除图像

时间:2012-10-21 12:12:01

标签: wordpress

我的客户正在使用WordPress进行房地产列表。目前,她没有清理她的列表和磁盘空间不足。什么WordPress配置可以让WordPress删除与已删除的页面/帖子相关联的图片。按照现在的情况,我必须注意图片,然后进入媒体库。

2 个答案:

答案 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 );
            }
}
?>