Wordpress 发布后删除图像

Wordpress 发布后删除图像,wordpress,Wordpress,我的客户正在使用WordPress进行房地产挂牌。目前,她没有清理她的物品清单,磁盘空间不足。什么样的WordPress配置可以让WordPress删除与已删除的页面/帖子相关联的图片。现在,我必须记下这些图片,然后进入媒体库。这应该可以做到 function o99_delete_post_children($post_id) { global $wpdb; $child_atts = $wpdb->get_col("SELECT ID FROM {$

我的客户正在使用WordPress进行房地产挂牌。目前,她没有清理她的物品清单,磁盘空间不足。什么样的WordPress配置可以让WordPress删除与已删除的页面/帖子相关联的图片。现在,我必须记下这些图片,然后进入媒体库。

这应该可以做到

 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')
免责声明:从未尝试过此方法,因此请先在非生产环境中进行测试-或自担风险使用

编辑I:感谢@Dale Sattler的评论


编辑II:添加了
添加操作(“垃圾发布”、“o99删除发布子项”)
若要支持管理员列表帖子中的“移动到垃圾桶”操作(而不是逐个删除)

您可以将其放在独立文件中,也可以在已经删除的帖子后进行“清理”

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


谢谢-我今晚会测试这一点,并让您知道。操作需要是“删除帖子之前”而不是“删除帖子”@Dale Sattler+1对于这条评论,对不起-我在2分钟内没有检查就写了这条评论(如原始帖子中所说)-我现在将进行编辑以更正。