我相信你说的是博客页面,当你选择一个静态首页时,你设置为帖子页面的页面。
许多功能(如面包屑)依赖于$post
全球的默认情况下,如果没有任何内容破坏$post
全局,在循环之前$post
global应始终在主查询循环中占据第一个职位。Asx我们通过循环中的帖子进行循环,$post
将设置为循环中的当前post,并最终保持循环后的最后一个post。记住,任何使用the_post()
或setup_postdata( $post )
设置$post
因此,这就是为什么wp_reset_postdata()
是如此重要。
无论如何,在博客页面上,页面对象不存储在$post
全局,因为页面对象显然不是循环中帖子的一部分。这是帖子页面/博客页面的正常默认行为。页面对象在$post
全局(如果没有任何内容破坏页面或$post
全局),以及所有单一的帖子页面,因为页面对象是循环中帖子数组中的唯一帖子。
用于设置帖子页面的页面的原始页面对象将在查询的对象中可用,即query_posts
断开主查询对象。因此,您可以按如下方式获取页面对象:
$post = get_queried_object();
setup_postdata( $post );
the_title();
the_ID;
the_content();
wp_reset_postdata(); // VERY VERY IMPORTANT!!!
或者,如果需要更可靠地获取查询的对象,可以使用
$GLOBALS[\'wp_the_query\']->get_queried_object()
正如我所解释的
here