如何在不中断分页的情况下获取除特定类别之外的所有帖子

时间:2012-11-04 作者:zadubz

我正在尝试获取除特定类别之外的所有帖子,这很好,但它会导致分页按钮/链接再次呈现第2、3、4页上的相同帖子,等等,而不会呈现较旧的帖子。下面是我如何尝试排除特定类别

<?php query_posts(\'cat=-22\');?>
这排除了类别,但阻止分页按钮/链接显示较旧的帖子,而是显示与第1页相同的前5篇帖子。

我尝试将类别排除位移到<?php if ( have_posts(\'cat=-22\') ) : ?> 但这并没有改变任何事情。

我想在index.phparchive.php

我也尝试过按名称排除类别,得到了相同的结果。

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

我会的filter pre_get_posts. 也许是这样,但您可能需要稍微调整条件:

function wpse71508_filter_pre_get_posts( $query ) {
    if ( is_main_query() ) {
        if ( is_home() || is_archive() ) {
            $query->set( \'cat\', \'-22\' );
        }
    }
    return $query;
}
add_action( \'pre_get_posts\', \'wpse71508_filter_pre_get_posts\' );
如果您可以澄清要对其应用此查询修改的上下文(而不是模板文件),我可以更具体一些。

结束

相关推荐

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

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