【问题标题】:WordPress categories missing缺少 WordPress 类别
【发布时间】:2011-03-07 19:14:10
【问题描述】:

请注意,这不是主题或其他问题。

类别未显示在管理面板中,但它表示有 6 个类别。它们在数据库中也可见。

最近托管发生了一些事情,任何 php move_upload 函数开始给出有关缺少 tmp 路径的错误,所以我创建了一个本地 php.ini 文件以指向正确的 tmp 文件夹 (home/user/tmp) 并解决了问题。

然而,这似乎是相关的。我尝试将这些设置在wp-config

define('WP_TEMP_DIR', '/tmp');
define('DBCR_CACHE_DIR', '/tmp');

但无济于事。

【问题讨论】:

  • 您是否尝试在数据库中搜索任何本地路径以确保它们都正确?
  • 是否在任何列中指定了路径?
  • 你运行的是什么版本的 WP?您可以看到和/或看不到哪些管理面板? (另外我假设我们谈论的是标准帖子类别,而不是自定义分类法等?)

标签: php wordpress categories


【解决方案1】:

我知道这是一篇非常过时的帖子,但我将其放在这里以供其他人发现,因为网络上有许多线程没有找到解决方案。我遇到了同样的问题,并对正在发生的事情进行了非常深入的研究。问题实际上出在 WordPress 核心上,我已经在 https://core.trac.wordpress.org/ticket/33148 提交了一个错误票。我建议在此处添加我可能错过的详细信息。

定义问题:

类别未显示在管理面板中,但它表示 有6个类别。它们在数据库中也可见。

WordPress 正在寻找没有父 ID 或链接到存在的父的类别。如果父 id 设置为不存在的 id(0 以外表示没有父),则类别将不会显示在列表中。我将附上几张截图来说明我在数据库级别之前和之后的意思。

查询运行:

//I am on a multisite instance so this is an example of the query using table numbers. 
//If you are on a standard install then wp_terms and wp_term_taxonomy is what you would use.

SELECT * FROM wp_2_terms terms JOIN wp_2_term_taxonomy tax ON terms.term_id=tax.term_id
WHERE tax.taxonomy='category';

正如您所见,父母是能量,但由于某种原因,id 不正确。因此,孩子没有正确链接。我只能假设我们的一位用户删除了父级,然后手动将其添加回来,但忘记链接子级。

由于我不小心在这里截断了表格列名,所以它们就在上面。

重新链接类别后,您应该会在数据库中看到它

修正类别的步骤:

  1. 如果您知道类别名称,您可以使用类别列表上方的搜索功能来搜索类别。编辑类别并重新选择 no-parent 或选择应链接到的父级并单击保存。由于父 ID 已设置为存在的正确值,因此该类别现在应显示在类别列表中。
  2. 另一种选择是将数据库中的 id 更新为 0,如果类别是孩子,则更新为 0 或父母 id。

我选择了选项 1,因为在插件或您自己的自定义代码中保存时可能会触发挂钩。我认为出现任何不良副作用的可能性较小。

现在类别又出现了:

【讨论】:

  • 有趣且乐于助人!在测试 MySQL 中的一些大规模类别更改后,我最终遇到了这种情况。只需编辑其中一个正在显示的类别,然后按原样保存(没有父级),我的所有类别都会再次出现。我没有找到哪个类别注册不正确,但重新保存对他们都有效,一次。非常感谢。
【解决方案2】:

与@Shawn 在他的回复中提到的类似,我也有类似的问题,但我的 ID 看起来还是正确的,根本没有育儿问题!

我所做的是在类别搜索字段中搜索一个“不可见类别”,单击编辑,然后单击保存(无需修改任何内容)。

然后所有子类又出现了

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-22
    • 2015-09-24
    • 1970-01-01
    • 2018-07-31
    • 2016-11-28
    • 2016-05-27
    • 1970-01-01
    相关资源
    最近更新 更多