面就详细阐述下 WordPress 实现上一篇/下一篇文章(日志)的几种典型做法。
这个方法几乎在所有的Wordpress主题中都可以看得到。一般是在Single.php文件中文章内容下方添加以下代码即可,如果你没有这个功能,可以自己添加。
(1)WordPress 默认直接调用做法:
<?php previous_post_link(‘%link’); ?> : 上一篇文章/日志链接
<?php next_post_link(‘%link ‘); ?> : 下一篇文章/日志链接
(2)通过增加判断填补空白:
<?php if(get_previous_post()){previous_post_link(‘上一篇: %link’);}else{echo”已经是第一篇了”;}?>
<?php if(get_next_post()){next_post_link(‘下一篇: %link’);}else{echo”已经是最后一篇了”;}?>
(3),同分类下实现上一篇/下一篇文章:
<?php if (get_previous_post()) { previous_post_link(‘上一篇: %link’,’%title’,true);} else { echo “该分类中第一篇了”;} ?>
<?php if (get_next_post()) { next_post_link(‘上一篇: %link’,’%title’,true);} else { echo “该分类中最后一篇了”;} ?>
此做法是在同分类下实现上一篇/下一篇文章,在(2)步的基础上增加了一个判断:true。
经测试(3)步,同分类下实现上一篇/下一篇文章的功能还不完美,当是第一篇或者最后一篇文章(日志)时,else 后面的出不来。没关系,我们只要在函数中指定一下文章所属分类 ID 便能使代码生效,完整代码如下:
<?php
$categories = get_the_category();
$categoryIDS = array();
foreach ($categories as $category) {
array_push($categoryIDS, $category->term_id);
}
$categoryIDS = implode(“,”, $categoryIDS);
?>
<?php if (get_previous_post($categoryIDS)) { previous_post_link(‘上一篇: %link’,’%title’,true);} else { echo “第一篇了”;} ?>
<?php if (get_next_post($categoryIDS)) { next_post_link(‘下一篇: %link’,’%title’,true);} else { echo “最后一篇了”;} ?>