脚本巴巴 www.jiaoben88.com

wordpress中添加上一页、下一页按钮的方法

发布时间:2014-09-01 15:49:08编辑:脚本巴巴

  在wordpress博客中,要实现添加上一页,下一页按钮,方法是非常简单的。如果只是单纯获取链接,只需如下代码即可:


<?php
previous_post_link(“上一篇: %link”,””,true);
next_post_link(“下一篇:%link”,””,true);
?>

  其中函数中第一变量为显示的格式化字符串,第二个为显示的文本内容,第三个布尔型变量表示是否将文本内容显示为默认的文章标题。将代码放到合适的地方就添加完成了,但是会有一些问题,比如阅读到最后一篇文章的时候,显示下一篇文章的位置就成了空白了,我们需要让它显示诸如”已经是最后一篇了”之类的词语,因此我们加上一个判断是否还有上(下)一篇文章的判断:


if (get_previous_post()) ….. else echo “已经是最早的日志了。”

if (get_next_post()) ….. else echo “已经是最新的日志了。”

  这个问题解决了,还有一个很实际的问题,我们的文章往往是按照不同类别分类好了,而上述函数实现的算法是根据文章的id去排序,而这样的话直接获取的下一篇文章就可能不是同一类别的,那应该怎么办呢?我们打开/wp-content/link-template.php文件查看函数代码,源文件如下:


function get_previous_post( $in_same_term = false, $excluded_terms = ”, $taxonomy = ‘category’ ) {
return get_adjacent_post( $in_same_term, $excluded_terms, true, $taxonomy );
}

/**
* Retrieve next post that is adjacent to current post.
*
* @since 1.5.0
*
* @param bool         $in_same_term   Optional. Whether post should be in a same taxonomy term.
* @param array|string $excluded_terms Optional. Array or comma-separated list of excluded term IDs.
* @param string       $taxonomy       Optional. Taxonomy, if $in_same_term is true. Default ‘category’.
* @return mixed       Post object if successful. Null if global $post is not set. Empty string if no corresponding post exists.
*/

  因此我们发现这个函数是有参数的,下面的注释也写的很清楚,第一个$in_same_term表示是否获取在同样目录的文章,因此我们在调用的时候只需传递参数true进去,就能解决问题了。 同时我们还看到后面还有几个参数,比如第二个参数,我们可以传递一个字符串,里面包含了我们想排除掉的分类目录进去,中间以逗号隔开,因此对于上面的要求,我们也可以按以下代码去实现:


$categories = get_the_category();$categoryIDS = array();
foreach ($categories as $category) {
array_push($categoryIDS, $category->term_id);  #将目录的id写入数组
}
$categoryIDS = implode(“,”, $categoryIDS);   #将数组中的内容整合为一个字符串,中间以逗号隔开
if (get_previous_post($categoryIDS )) ….#后面省略

  这样实现稍微麻烦了一点,不过这个思路可以让我们去实现一些更特殊的需求。比如指定的排除某些目录等。

上一篇:WordPress 文章评论排行榜实现方法
下一篇:wordpress中自动获取meta关键词和描述的实现方法

相关文章