已发布的帖子不可查询,也不会显示在管理仪表板中

Published posts are not query-able and not displayed in admin dashboard

这个问题我遇到过很多次了。只有当我以编程方式 create/edit posts 时才会发生此问题。它们可能是习惯 post 甚至是 Wordpress 的默认值 post。症状可能是:

这是一个自答问题。我以前遇到过几次这个问题,但总是忘记它的原因。并且搜索暗示许多其他人也无法解决的可能性。

TL;DR;:是 publish,不是 published

这个问题的原因是因为我在以编程方式创建新的 post 时,我将其 post_status 设置为 published。造成混淆的常见原因是当您以编程方式批准 post 时,将 post 状态从 pending 切换到 published,因为这看起来合乎逻辑。

那些 post 既未显示在查询中也未显示在管理仪表板中的原因是因为 WP_Querypost_status => 'any' 实际上并未查询 'any' post status 正如我们所期望的,但是 any registered post status。由于 wordpress 事先不知道 post 状态 published,因此它们会被查询忽略。

希望明年不要忘记今天写的东西。