为什么我的类别中有重复的弹头?

时间:2019-02-20 作者:Sam Nabi

我继承了一个WordPress网站,在那里我试图解决一个与帖子类别相关的奇怪问题。

Edit Post page,下面没有显示任何内容Categories (古腾堡编辑)。

missing categories

觉得这很奇怪,我去了Categories 页在那里,我看到许多类别都有相同的slug。

list of duplicate posts

这对我来说更奇怪,因为我认为类别不可能有相同的slug。我想这就是问题所在。

所以我想开始删除这些重复的类别,但没有Delete 链接–仅限View.

view button visible, but not delete

有人能解释一下这里可能发生的事情吗?我可以在数据库中直接修复这个问题吗?

2 个回复
最合适的回答,由SO网友:Sam Nabi 整理而成

我在wp_terms 带有term_id 属于0.

还有一些条目wp_term_taxonomy 具有term_taxonomy_idterm_id 都设置为0.

删除所有这些行后,行为恢复正常。

此外,我还必须修复数据库结构的一些问题。在wp_terms 桌子,我必须确保AUTO_INCREMENT 已为主键字段启用。

SO网友:Rick Hellewell

只需注意:会有not 如果将帖子分配给某个类别,则可以在类别页面的某个类别上删除该选项。(Added 请参见下文。)

如果你想删除一个类别,你必须先将这些帖子更改为另一个类别。您可以在帖子页面上执行此操作,按类别排序,然后快速编辑以更改类别。

一旦存在没有帖子的类别,则可以删除该类别。

更改表中的值可能会导致其他问题。可能不是很严重,但我猜你有很多没有类别的帖子,因为你删除了表中的那些项目。

Added

显然,WP的当前版本允许您删除已分配帖子的类别。

我记得在之前的版本4.9-ish中并非如此,但无法说出确切的版本。不过,那是在去年。

使用此新信息修改答案。