next_post_link()函数和previous_post_link()函数

next_post_link()函数用来实现上一篇功能

语法结构

<?php previous_post_link( $format, $link, $in_same_term = false, $excluded_terms = '', $taxonomy = 'category' ); ?>

参数

$format可以写作为%link

$link指的是链接的文本,默认是%title

$in_same_term指的是是否在相同的分类,默认是false不是相同分类

$excluded_terms指的是在显示上一篇或下一篇时是否排除掉某分类,缺省不排除,如果排除,把分类ID列在此处,以英文逗号分隔

$taxonomy指的是分类名称,默认是category

实例

<?php previous_post_link('Pre: %link') ?> //实现上一篇功能

next_post_link()函数用来实现下一篇功能

语法结构

<?php next_post_link( $format, $link, $in_same_term = false, $excluded_terms = '', $taxonomy = 'category' ); ?>

参数

$format可以写作为%link

$link指的是链接的文本,默认是%title

$in_same_term指的是是否在相同的分类,默认是false不是相同分类

$excluded_terms指的是在显示上一篇或下一篇时是否排除掉某分类,缺省不排除,如果排除,把分类ID列在此处,以英文逗号分隔

$taxonomy指的是分类名称,默认是category

实例

<?php next_post_link('Next: %link') ?> //实现下一篇功能

只需要把这两段代码放入你的HTML程序中即可,简单实用,不过这种方法实现的上一篇下一篇功能是不分类别的,如果想要只显示相同类别的文章则需要用下面的代码了。除了调用外,还需要进行判断上一篇或下一篇是否有日志,代码如下:

<?php if (get_previous_post()){
    previous_post_link("Pre: %link","%title",true);
}else{
    echo "Pre: None";
} ?>

<?php if (get_next_post()){
    next_post_link("Next: %link","%title",true);
}else {
    echo "Next: None";
} ?>

上面的代码默认设置为同一分类下的上一篇和下一篇了,如果不需要,则把true改成false,或者直接删除true即可。其实把这两段代码放入程序中会发现当没文章时会显示空白,解决办法是给特定的分类下指定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()){
    previous_post_link("Pre: %link","%title",true);
}else{
    echo "Pre: None";
} ?>

<?php if (get_next_post()){
    next_post_link("Next: %link","%title",true);
}else {
    echo "Next: None";
} ?>

这样当没有上一篇或下一篇文章时就会显示None