根据 phpmyadmin 中的类别 ID 获取 wordpress 帖子 ID 列表
Posted
技术标签:
【中文标题】根据 phpmyadmin 中的类别 ID 获取 wordpress 帖子 ID 列表【英文标题】:Get list of wordpress Post ID's based on category ID in phpmyadmin 【发布时间】: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);
【问题讨论】:
【参考方案1】:我认为您的问题是您正在将 poststodelete 搜索填充到 wp_postsmeta 中,但实际上 WP 将帖子 类别关系存储在 _wp_term_relationships 中,因此我猜您的初始查询没有采用正确的帖子。 Object_id 是您的帖子 ID,而 term_tax_id 是 wp_term_taxonomy 的 ID,它存储与它的分类相关的类别 ID
【讨论】:
谢谢,所以如果我理解我也不能查询 wp_term_relationships,因为它包含分类 ID 但不包含值。我需要找到一种方法来获取类别 ID“1234”中帖子的所有帖子 ID 如果您知道“1234”是您的 TERM id,那么您只需在 wp_term_taxonomy 中搜索它,获取该表的 ID,将其与 term_relationship 连接并继续删除 ^^以上是关于根据 phpmyadmin 中的类别 ID 获取 wordpress 帖子 ID 列表的主要内容,如果未能解决你的问题,请参考以下文章
我想根据我的父 ID 类别获取所有子类别。使用 Django/Vuejs。更多信息如下
MySQL - 根据用户的选择选择列'名称'列'id'和'parent'中的行彼此相等
如何从 WooCommerce 中的订单项中获取产品类别 ID