WordPress自定义文章类型reviews内容无法调取显示,遗漏了什么配置?
排查解决步骤:
- 第一步(优先级最高):刷新WordPress固定链接
注册自定义文章类型后必须更新重写规则,进入后台【设置】-【固定链接】页面,不需要修改任何配置,直接点击「保存设置」即可,90%的同类问题都是未刷新重写规则导致的。 - 第二步:补全查询参数,避免其他代码干扰默认配置
你当前的WP_Query参数缺少显式的状态声明,容易被其他钩子或者默认逻辑过滤,修改查询参数为:$args = array( 'post_type' => 'reviews', 'posts_per_page' => 12, 'post_status' => 'publish', // 显式指定仅查询已发布的内容 'ignore_sticky_posts' => true // 排除置顶文章规则的影响 ); - 第三步:排查前置查询修改逻辑
检查主题的functions.php文件、已启用插件中是否有使用pre_get_posts钩子的代码,这类代码如果没有加查询范围判断,会篡改所有前台查询的参数,导致自定义文章类型的查询结果被过滤。如果存在这类代码,需要给查询加上范围限制,比如仅修改首页主查询的话要补充if ($query->is_home() && $query->is_main_query())的判断条件。 - 第四步:验证内容与字段配置
- 确认后台
Reviews文章类型下,已经发布了至少1篇公开状态的内容,排除草稿、待审核、私有状态的内容未被查询到的问题 - 确认你使用的
the_field对应的自定义字段,已经绑定到reviews自定义文章类型,而非仅绑定到普通文章
- 确认后台
如果以上步骤都排查后还是无法查询到内容,可以在new WP_Query($args)代码后新增var_dump($the_query->request);打印实际执行的SQL语句,就能直接定位到查询条件的异常点。
内容的提问来源于stack exchange,提问作者SeanMarc
相关产品推荐
相关产品推荐

