1

我最近重新设计了一个网站并迁移到另一个域。新站点使用 Wordpress 作为整个站点的 CMS(它只是管理前一个站点的博客)。不知何故,在建立新网站的过程中,设计师添加了一大堆类别,准确地说是 953 个,其中大多数都附加了零帖子,并且永远不会使用。

我想清除这些零类别,但使用 WP 界面执行此操作需要很长时间,一次只能显示 20 个。有没有办法通过 MySQL 操作来做到这一点?我不愿意从类别表中删除它们,因为我不知道它们是如何链接到数据库中的其他地方的。OTOH 也许如果该类别的帖子为零,那没关系?

我知道有一些 WP 方法可以安全地执行此操作,因为当您删除类别时,仪表板上的类别页面必须调用它,但我无法通过查看表单来弄清楚它是什么。

4

2 回答 2

3

对我有用的是:

DELETE FROM `wp_term_taxonomy` WHERE taxonomy = 'category' AND term_taxonomy_id NOT IN (SELECT term_taxonomy_id FROM `wp_term_relationships`);

DELETE FROM `wp_terms` WHERE term_id NOT IN (SELECT term_id FROM `wp_term_taxonomy`);

注意 1:以前备份数据库可能是个好主意。

注意 2:这也会删除非空子类别的空父类别。如果您有这种情况,您必须parent在之后更新表中的列wp_term_taxonomy

于 2018-04-09T23:56:00.080 回答
2

如果您单击控制面板顶部的“屏幕选项”按钮,您可以选择在 WP 界面中显示的类别数量,然后使用复选框进行批量删除。

于 2012-08-29T16:14:08.173 回答