我需要一些关于全球$POST的解释

时间:2017-11-21 作者:dareadel

抱歉,如果这听起来像一个愚蠢的问题,但这是困扰我一段时间的问题。我需要解释一下

function custom_function () {
    global $post;
}
我从PHP了解到,全局变量可用于从脚本中的任何位置访问全局变量。我知道global $post 通常在设置新查询时设置。如果在WordPress查询帖子中未声明全局变量,会发生什么情况?我知道如何在WordPress中使用它,但还不完全理解为什么。非常感谢。

1 个回复
SO网友:Johansson

这个global $post; 命令的行为类似于the_post() 功能,但在循环之外。

当您想使用post的数据时,如get_the_ID()the_title() 如果您不在循环中,您可以使用global $post; 访问这些数据。之后,您可以访问它们,例如$post->ID$post->post_title. 这样,您可以按如下方式使用上述功能:

get_the_title( $post->ID );
在循环中,可以使用the_post() 执行此操作的函数:

if ( have_posts() ) {
    while ( have_posts() ) {
        the_post();
        // Now you can use the_ID(); for example
    }
}

结束

相关推荐

存档页面中的辅助WP_QUERY被覆盖

我在存档页上遇到了一个特殊的问题。这个特定页面应该列出属于某个类别的所有帖子,但可以通过第二个(自定义)分类法进行过滤:即:同时属于“新闻”和“娱乐”的帖子(后者属于“主题”分类法)。问题是,如果没有属于这两个分类术语的帖子,则不应该出现过滤器链接,但到目前为止,我还无法删除“空”链接,因为查询被主链接覆盖——下面是一些代码来解释:if ( is_single() ) { $cats = get_the_category(); $cat = $cats[0]; }