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

来源:互联网 发布:金融 大数据 微线索 编辑:程序博客网 时间:2024/05/06 18:17

在wordpress博客中,要实现添加上一页,下一页按钮,方法是非常简单的。具体的实现效果可以移步我的个人博客。

如果只是单纯获取链接,只需如下代码即可:

<?phpprevious_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 )) ….#后面省略


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

0 0
原创粉丝点击