
前言
前面我们写了一篇《WordPress 从删除文章后(清空回收站)保存被删除文章的链接到txt》。
这个这个方法实用确在后面的回收站删除步骤出现了新的问题。
如果回收站里面的文章数据少,倒还可以手动清空回收站,但我的数据太多,又10万左右的文章都放在回收站了,这样我在清空回收站的时候,服务器性能不足,不能同时删除太多的文章,导致502。
我又找到下面的方法来解决这个问题。
教程
在你的主题function.php中放入以下代码。
// 分批删除回收站文章(https://www.zz2zz.com/331243.html)
add_action('init', 'batch_delete_trashed_posts');
function batch_delete_trashed_posts() {
// 仅管理员且带有参数时执行
if (!current_user_can('administrator') || !isset($_GET['do_batch_cleanup'])) return;
$batch_size = 100; // 更保守的批次大小
$trashed_posts = get_posts([
'post_status' => 'trash',
'posts_per_page' => $batch_size,
'fields' => 'ids',
]);
foreach ($trashed_posts as $post_id) {
wp_delete_post($post_id, true); // 触发钩子自动记录
}
// 自动重定向直到清空
if (!empty($trashed_posts)) {
wp_redirect(add_query_arg('do_batch_cleanup', '1'));
exit;
} else {
// 清空后删除操作参数
wp_redirect(remove_query_arg('do_batch_cleanup'));
exit;
}
}
执行
在浏览器 输入 https://www.你的域名.com/?do_batch_cleanup=1
这样你可以完全不用管理,让他自己在慢慢删除。并且不会出现502错误导致运行中断。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。