已发布的帖子不可查询,也不会显示在管理仪表板中
Published posts are not query-able and not displayed in admin dashboard
这个问题我遇到过很多次了。只有当我以编程方式 create/edit posts 时才会发生此问题。它们可能是习惯 post 甚至是 Wordpress 的默认值 post。症状可能是:
- post 在管理仪表板中不可见。 Post 该自定义 post 类型的数量仍在增加,但列表中未显示 post。
- 创建的 post 不可查询,即使
post_status
设置为 'any'
。奇怪的是,当我将 post_status
设置为 published
时,它起作用了。
这是一个自答问题。我以前遇到过几次这个问题,但总是忘记它的原因。并且搜索暗示许多其他人也无法解决的可能性。
TL;DR;:是 publish
,不是 published
。
这个问题的原因是因为我在以编程方式创建新的 post 时,我将其 post_status
设置为 published
。造成混淆的常见原因是当您以编程方式批准 post 时,将 post 状态从 pending
切换到 published
,因为这看起来合乎逻辑。
那些 post 既未显示在查询中也未显示在管理仪表板中的原因是因为 WP_Query
的 post_status => 'any'
实际上并未查询 'any' post status 正如我们所期望的,但是 any registered post status。由于 wordpress 事先不知道 post 状态 published
,因此它们会被查询忽略。
希望明年不要忘记今天写的东西。
这个问题我遇到过很多次了。只有当我以编程方式 create/edit posts 时才会发生此问题。它们可能是习惯 post 甚至是 Wordpress 的默认值 post。症状可能是:
- post 在管理仪表板中不可见。 Post 该自定义 post 类型的数量仍在增加,但列表中未显示 post。
- 创建的 post 不可查询,即使
post_status
设置为'any'
。奇怪的是,当我将post_status
设置为published
时,它起作用了。
这是一个自答问题。我以前遇到过几次这个问题,但总是忘记它的原因。并且搜索暗示许多其他人也无法解决的可能性。
TL;DR;:是 publish
,不是 published
。
这个问题的原因是因为我在以编程方式创建新的 post 时,我将其 post_status
设置为 published
。造成混淆的常见原因是当您以编程方式批准 post 时,将 post 状态从 pending
切换到 published
,因为这看起来合乎逻辑。
那些 post 既未显示在查询中也未显示在管理仪表板中的原因是因为 WP_Query
的 post_status => 'any'
实际上并未查询 'any' post status 正如我们所期望的,但是 any registered post status。由于 wordpress 事先不知道 post 状态 published
,因此它们会被查询忽略。
希望明年不要忘记今天写的东西。