您可以使用previous_post_link()
和next_post_link()
.
这些函数将为您创建链接,您应该能够摆脱分页所使用的所有逻辑。
由于您只希望链接到同一类别的帖子,因此应使用具有以下参数的函数:
previous_post_link(\'« %link\', \'%title\', true);
next_post_link(\'%link »\', \'%title\', true);
更新关于上一次/下一次链接的最新问题,当它们是第一次/最后一次发布时,请参见这一行
previous_post_link()
和
next_post_link()
关于
$in_same_term
参数:
指示下一篇文章是否必须与当前文章在相同的分类术语内。如果设置为“true”,则仅显示当前分类术语中的帖子。如果帖子同时位于父类和子类中,或多个术语中,则下一个帖子链接将指向这些术语中的下一个帖子。
考虑到这一点,我怀疑你的前几篇文章可能与不止一个类别有关?如果是这样的话wp_get_object_terms
过滤器可能会有所帮助。
在您最初的问题(预编辑)中,您只搜索第一个类别中的帖子,因此我将在此处应用该逻辑:
<?php add_filter(\'wp_get_object_terms\', \'my_custom_post_navigation\', 4, 99); ?>
<div id="nav-above" class="navigation">
<div class="nav-previous">
<?php previous_post_link( \'<span class="meta-nav"> %link </span>\', _x( \'◄ Previous\', \'Previous post link\', \'category\') , TRUE ); ?>
</div>
<div class="nav-previous">
<?php next_post_link( \'<span class="meta-nav"> %link </span>\', _x( \'Next ►\', \'Next post link\', \'category\') , TRUE ); ?>
</div>
</div><!-- #nav-above -->
<?php remove_filter(\'wp_get_object_terms\', \'my_custom_post_navigation\', 99); ?>
除上述内容外,您还应将其放置在
functions.php 文件:
/**
* Return only the first category when outputting the previous/next post links
*/
function my_custom_post_navigation($terms, $object_ids, $taxonomies, $args){
return array_slice($terms, 0, 1);
}