忽略WP_QUERY中的类别仍然显示NEXT_POST_LINK()中的链接吗?

时间:2011-09-28 作者:Kyle Hotchkiss

所以我有一个WP\\U查询,如下所示:

$homepage = new WP_Query( \'posts_per_page=1&cat=-5\' );
在我的while循环中,我有一个next_post_link()previous_post_link(), 都显示了排除类别中的帖子。下面是我的代码:

<?php while ( $homepage->have_posts() ) : $homepage->the_post(); ?>
 <?php next_post_link(\'&laquo; %link\'); ?> 
 <?php previous_post_link(\'%link &raquo;\'); ?> 
<?php endwhile; ?> 
根据the wordpress docs on next_posts_link & previous_posts_link, 这些函数基于当前查询:

打印指向当前查询中下一组帖子的链接。

有人知道为什么吗next_post_link()previous_post_link() 当循环的其余部分按预期工作时,是否会显示应排除的帖子?

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

您必须在next_post_linkprevious_post_link 调用,因为它使用的是posts数据,而不是您的特定查询数据,因此,这应该可以解决它:

while ( $homepage->have_posts() ) : $homepage->the_post(); 
    next_post_link( \'&laquo; %link\', \'%title\', false, \'5\' );  
    previous_post_link( \'%link &raquo;\', \'%title\', false, \'5\' );  
endwhile; 
其中5为排除类别。如果需要排除更多类别,只需用逗号分隔它们。

结束