自定义帖子页面具有最新帖子的属性

时间:2016-02-29 作者:SLembas

共享自定义帖子页面时,会显示最新帖子的标题、描述、作者。甚至页面ID都来自最新的帖子。

它应该这样工作吗?除此之外,它还会导致面包屑、链接到帖子页面(将您发送到最新的帖子)等许多其他问题。

1 个回复
SO网友:Pieter Goosen

我相信你说的是博客页面,当你选择一个静态首页时,你设置为帖子页面的页面。

许多功能(如面包屑)依赖于$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

相关推荐

如何从wp_INSERT_POST获取文章ID

我正在以编程方式插入一个新页面,然后我想使用该新页面的ID添加模板,但是wp\\u insert\\u post没有返回任何ID,下面是我使用的代码$tittle = \'My new page\'; $newPage = array( \'post_type\' => \'page\', \'post_title\' => $tittle, \'post_status\' => \'pub