我正在尝试获取除特定类别之外的所有帖子,这很好,但它会导致分页按钮/链接再次呈现第2、3、4页上的相同帖子,等等,而不会呈现较旧的帖子。下面是我如何尝试排除特定类别
<?php query_posts(\'cat=-22\');?>
这排除了类别,但阻止分页按钮/链接显示较旧的帖子,而是显示与第1页相同的前5篇帖子。
我尝试将类别排除位移到<?php if ( have_posts(\'cat=-22\') ) : ?>
但这并没有改变任何事情。
我想在index.php
和archive.php
我也尝试过按名称排除类别,得到了相同的结果。
最合适的回答,由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\' );
如果您可以澄清要对其应用此查询修改的上下文(而不是模板文件),我可以更具体一些。