A-A+

wordpress上一篇文章下一篇文章函数next_post_link和previous_post_link

2015年02月24日 PHP开源系统 评论 1 条 阅读 26 views 次

在 wordpress 中,显示日志上一篇文章下一篇文章的是函数是 next_post_link和previous_post_link,而且这两个函数仅只能用在日志页当中。

夏日博客基本用法如下:

<?php previous_post_link("上一篇: %link") ?>

<?php next_post_link("下一篇: %link") ?>

将这两段代码放到文章模板指定位置即可,还原成 html 代码如下:

上一篇: <a href="#" rel="prev">她没有流泪</a>下一篇: <a href="#" rel="next">今天天气不错</a>

这是最简单的应用了,如果没有上一篇或下一篇文章的时候,则什么都不会显示,上面的用法是不分类别的,如果我们想要在分类中只显示同分类的上一篇文章或下一步文章,可以进行更改一下格式即可,格式代码如下:

<?php previous_post_link($format, $link, $in_same_cat = false, $excluded_categories = ""); ?>

<?php next_post_link($format, $in_same_cat = false, $excluded_categories = ""); ?>

参数说明:

$format:格式化被显示的字符串,缺省值是”‘? %link”,第二个函数缺省值是”%link ?”。

$link:被显示的字符串,缺省值是上一篇或下一篇的”$title”,也可以设置为其它你想显示的字符串。

$in_same_cat :表示是显式同一类别下的文章还是不区分类别的文章,缺省值false表示不区分类别,只以发帖的时间先后来确定。

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

了解了同分类下显示上一篇和下一篇的代码语句和参数后,我们来看一下最简单的调用代码,如下:

<?php previous_post_link("上一篇: %link","%title",true) ?>

<?php next_post_link("下一篇: %link","%title",true) ?>

将这两段代码同样放到文章的模板页当中就可以了,这也是调用同类文章上一篇与下一篇的最简单的代码,除了调用外,还需要进行判断上一篇或下一篇是否有日志,代码如下:

<?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 "下一篇:没有了,已经是最新文章";} ?>

上面的代码我默认设置为同一分类下的上一篇和下一篇了,如果不需要,则把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($categoryIDS)) { previous_post_link("上一篇: %link","%title",true);} else { echo "上一篇:没有了,已经是最后文章";} ?>

<?php if (get_next_post($categoryIDS)) { next_post_link("下一篇: %link","%title",true);} else { echo "下一篇:没有了,已经是最新文章";} ?>

好了,现在所有问题都解决了。

标签:

1 条留言  访客:1 条  博主:0 条

  1. 姜哥说事

    刚从搜索中来的

给我留言