WordPress文章页只显示同栏目的上一篇和下一篇的链接,提高文章的相关性,有利于用户体验UEO和搜索引擎优化SEO等等,那么今天给大家介绍下WordPress文章页只显示同栏目的上一篇和下一篇的链接。

最简单的方法:

最常见的方式,直接调用:


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

缺点一:
显而易见,当文章处于首篇或尾篇的时候,就会呈现空白。下面通过增加判断来解决这个问题。


<?php
	if (get_previous_post()) {
		previous_post_link('上一篇: %link','%title',true);
	}
	else {
		echo '已是最后文章';
	}

	if (get_next_post()) {
		next_post_link('上一篇: %link','%title',true);
	}
	else {
		echo '已是最新文章';
	}
?>

缺点二:
会显示所有分类的上一篇和下一篇的。例如网站有一个产品栏目和一个新闻栏目,产品的下一篇忽然成了一篇新闻,是谁(用户和搜索引擎)都会疯的;没有文章的相关性,既不利于用户体验,也不利于SEO,

推荐的方法

接下来我们来实现只显示同分类下的文章,实际上很简单,下面给出完整的代码。打开主题目录下的文章页single.php,再对应的位置,一般是文章内容下方,添加下面这段代码


<?php
	$categories = get_the_category();
	$categoryIDS = array();
	foreach ($categories as $category) {
		array_push($categoryIDS, $category->term_id);
	}
	$categoryIDS = implode(",", $categoryIDS);

	if (get_previous_post($categoryIDS)) {
		previous_post_link('上一篇: %link','%title',true);
	}
	else{
		echo '已是最后文章';
	}

	if (get_next_post($categoryIDS)) {
		next_post_link('上一篇: %link','%title',true);
	}
	else {
		echo '已是最新文章';
	} 
?>