这个$post
global始终在循环之前保留主查询对象中的第一个帖子(如果在此之前没有任何内容打断它)。在单一页面和静态首页上,它将始终与查询的对象相同。对于所有档案,主页和博客页,$post
担任$posts
循环前的数组和$posts
循环后的数组。
如果需要以博客页面上的实际页面对象为目标,则需要使用查询的对象,而不是$post
全球的查询的对象将保存用作设置为博客页面的页面的页面对象。正如我之前所说,$post
将在循环中担任第一个职位。
您还需要记住$post
global非常不可靠,因为任何东西都可以改变它。为了获得更高的可靠性,要访问单一页面(单篇文章页面、真实页面和静态首页)或博客页面上的页面对象,请使用get_queried_object()
. 如果你想要更高的可靠性,你可以使用$GLOBALS[\'wp_the_query\']->get_queried_object()
. 我最近才知道an answer on this very subject