[WordPress模板]WordPress主题制作3-调用同分类上下篇文章

WordPress文章模板里一般都会有上一篇文章和下一篇文章的链接,但默认的WordPress提供的直接调用上一篇/下一篇文章的代码是按照文章的发布顺序的前后调用的。

直接调用代码:

<?php previous_post_link('上一篇: %link') ?>
<?php next_post_link('下一篇: %link') ?>

这样直接调用后,如果是第一篇文章,没有上一篇文章时,原本上一篇的连接就会变成空白,很不人性化,如果能提示为“已是最新文章”则会好很多。通过多一层的判断就可以实现该功能。

人性化的调用:

<?php if (get_previous_post()) { previous_post_link('上一篇: %link');} else {echo "已是最后文章";} ?>
<?php if (get_next_post()) { next_post_link('下一篇: %link');} else {echo "已是最新文章";} ?>

这样调用是不是更好了呢。但是还有个问题,就是调用的上一篇/下一篇文章仍是后台所有分类下的所有文章发布的先后顺序。如果能只调用自己分类下的上一篇下一篇文章就更加完美了,其实只需要在get_previous_post()函数中指定一下上一篇/下一篇文章所属的分类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 "已是最新文章";} ?>

当然,如上的代码只是把上一篇下一篇连接直接输出了出来,未加任何样式。如果你需要添加新的样式,可以在其外围包上div或span等标签,然后再对其增加css样式代码就可以了。本站的上一篇/下一篇链接就是用的这种方法实现的。

分享到:更多 ()

抢沙发

评论前必须登录!