根据 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

Action怎样获取页面的值呢?

我可以在 Sequelize.js 中的单个查询中获取 ID 为 1 的类别和该类别的所有子类别吗?

如何使用 Firebase RealTime 数据库根据特定类别获取项目集合