You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何卸载WordPress插件ledproperty后旧帖子未删除?

解决WordPress插件卸载时彻底删除自定义帖子的问题

现有代码的问题

你当前的卸载代码中,wp_delete_post($post->ID, false) 的第二个参数为 false,这只会将自定义类型帖子移到回收站,而非彻底删除。WordPress 不会自动清理回收站内容,所以重新安装插件后,这些帖子仍会存在(或可从回收站恢复),导致旧内容再次出现。

修正方案

1. 彻底删除所有自定义类型帖子

将 wp_delete_post 的第二个参数改为 true,强制彻底删除帖子,跳过回收站环节:

if (!defined('WP_UNINSTALL_PLUGIN')) exit; 

// 获取所有ledproperty类型的帖子,包含所有状态(草稿、私密、已发布等)
$ledproperty_args = array(
    'post_type' => 'ledproperty',
    'posts_per_page' => -1,
    'post_status' => 'any' // 确保覆盖所有状态的帖子,避免遗漏
); 
$ledproperty_posts = get_posts($ledproperty_args); 

foreach ($ledproperty_posts as $post) { 
    wp_delete_post($post->ID, true); // true表示彻底删除,不保留回收站记录
} 

2. 额外清理关联内容(可选但建议)

如果你的自定义帖子使用了自定义字段、自定义分类/标签或关联附件,建议一并清理,避免残留无效数据:

清理自定义字段

global $wpdb;
// 删除所有ledproperty帖子关联的自定义字段
$wpdb->query(
    "DELETE FROM $wpdb->postmeta 
     WHERE post_id IN (SELECT ID FROM $wpdb->posts WHERE post_type = 'ledproperty')"
);

清理自定义分类/术语(如果有注册)

假设你注册了名为ledproperty_category的自定义分类:

// 获取该分类下的所有术语
$terms = get_terms(array(
    'taxonomy' => 'ledproperty_category',
    'hide_empty' => false
));

foreach ($terms as $term) {
    wp_delete_term($term->term_id, 'ledproperty_category');
}

清理关联附件

自定义帖子可能绑定了媒体附件,可一并删除:

// 获取所有关联ledproperty帖子的附件
$attachments = get_posts(array(
    'post_type' => 'attachment',
    'posts_per_page' => -1,
    'post_parent__in' => wp_list_pluck($ledproperty_posts, 'ID')
));

foreach ($attachments as $attachment) {
    wp_delete_attachment($attachment->ID, true);
}

3. 多站点环境适配(如果需要)

如果是WordPress多站点,需循环处理每个站点的内容:

if (is_multisite()) {
    global $wpdb;
    $blog_ids = $wpdb->get_col("SELECT blog_id FROM $wpdb->blogs");
    foreach ($blog_ids as $blog_id) {
        switch_to_blog($blog_id);
        // 执行上述所有删除逻辑
        restore_current_blog();
    }
}

注意事项

  • 测试前请务必备份网站数据,避免误删重要内容。
  • 确保卸载代码放在插件根目录的uninstall.php文件中,WordPress会在插件卸载时自动执行该文件。

内容的提问来源于stack exchange,提问作者Kira Dresst

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 17:22:20