区分嵌套的WP_QUERY和父级

时间:2018-07-12 作者:Kevin Nugent

我正在筛选the_content 为了将相关帖子的网格附加到具有嵌套WP_Query 并希望使用相同的内容。php文件,就像我对主查询所做的那样。例如,问题是我的“正常”条件不再按要求工作is_single() 返回true(正如预期的那样,我们使用的是单个),但我确实需要将此循环实例视为!is_single().

我尝试使用is_main_query() 但在嵌套查询中也返回true。

我的问题是,如何区分“main”和“nested”查询,以便有条件地输出内容?

1 个回复
SO网友:Jacob Peattie

您可以检查当前帖子ID是否与“查询对象”ID相同,该ID是当前URL表示的任何帖子,并且与循环中的当前帖子分离。如果这两个ID相同,则可以假设当前筛选的内容是针对主帖子的内容,而不是针对不同帖子的嵌套查询。

function wpse_308358_content_filter( $content ) {
    if ( is_single() && get_queried_object_id() === get_the_ID() ) {
        $content .= \'Appended content.\';
    }

    return $content;
}
add_filter( \'the_content\', \'wpse_308358_content_filter\' );
is_single() 添加保护,防止您在类别存档中显示完整内容,并且您的类别恰好与帖子具有相同的ID。

结束

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post