【发布时间】:2021-09-03 02:48:03
【问题描述】:
我有一个包含 400k+ 自定义帖子的大型 wp 安装。 我想清理它并删除很多帖子。
我想删除某些类别中的所有帖子,我有一个类别,例如 ID 1234,其中包含 50k 个帖子。
所以我正在尝试遵循本教程https://laloah.wordpress.com/2013/06/11/how-to-delete-thousands-of-posts-in-wordpress-via-phpmyadmin/
为了做到这一点,我需要选择一个类别中帖子的所有 ID,所以我使用此代码选择所有 ID 并将它们插入到表中
insert into poststodelete
SELECT DISTINCT post_id
FROM wp_postmeta
WHERE meta_value Like "1234";
我遵循教程的其余部分,它应该删除所有帖子。但是在前端我仍然看到类别 1234 中的帖子。
然后我回到 phpmyadmin 看看是否还有那个类别 ID 的帖子
SELECT DISTINCT post_id
FROM wp_postmeta
WHERE meta_value Like "1234";
但现在它返回 0 值,所以该类别中的所有帖子都应该被删除,不是吗?我在这里错过了什么?
我用来删除帖子的其余代码来自教程
(select a.id from wp_posts a inner join poststodelete b on a.post_parent=b.id);
DELETE a, b
FROM wp_commentmeta a
inner join wp_comments b on a.comment_id=b.comment_id
inner join poststodelete c on b.comment_post_ID=c.id;
DELETE a FROM wp_term_relationships a inner join poststodelete b on a.object_id=b.id;
DELETE a FROM wp_postmeta a inner join poststodelete b on a.post_id=b.id;
DELETE a FROM wp_posts a inner join poststodelete b on a.id=b.id;
update wp_term_taxonomy t set count=(select count(*) from wp_term_relationships where term_taxonomy_id=t.term_taxonomy_id);
【问题讨论】:
标签: mysql wordpress phpmyadmin