为什么这个查询返回整个博客帖子

时间:2014-06-01 作者:gurung

我在一个页面上运行了两个WP\\U查询循环。第一个查询显示粘性帖子,第二个查询根据meta\\u值进行设置。我遇到的问题是,当没有粘性帖子时,查询似乎会显示所有可用的帖子,这绝对不是我需要的。我需要它显示没有找到任何东西,如果没有根据查询找到帖子。

 $com_soon = array( 
                \'post_type\' => \'post\',
                \'post__in\' => get_option( \'sticky_posts\'),
                \'numberposts\' => -1,
                \'cat\' => 2
                );

                $cs_profiles = new WP_Query($com_soon);
                if ($cs_profiles->have_posts()) :
                while ($cs_profiles->have_posts()) : $cs_profiles->the_post();?>
                //the loop here 
                endwhile; else:
                echo \'NOTHING FOUND\';
                endif;  
我想这是某种wp回退机制。我有没有办法避免这种情况,因为if-have帖子在这里似乎不起作用。

1 个回复
最合适的回答,由SO网友:gurung 整理而成

下面的代码段from the codex 建议只显示第一个粘性贴子。If there are none, it wont return anything. 无论您的用例是什么,请相应地应用逻辑。

$sticky = get_option( \'sticky_posts\' );
$args = array(
    \'posts_per_page\' => 1,
    \'post__in\'  => $sticky,
    \'ignore_sticky_posts\' => 1
);
$query = new WP_Query( $args );
if ( isset($sticky[0]) ) {
    // insert here your stuff...
}

结束

相关推荐

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

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