当前位置:首页 > 网络科技 > WordPress代码实现完善的文章相关推荐功能

WordPress代码实现完善的文章相关推荐功能

1年前 (2024-08-27)admin网络科技60

这两天子凡把泪雪网的相关推荐功能进行了重写,将原来的文章相关推荐功能做了自我感觉非常优秀的改进,相比用其它 WordPress 相关文章推荐的插件来说,我更喜欢自己来折腾,经过这一番的重写 WordPress 相关推荐,泪雪网的相关文章推荐已经得到了更加完善的推荐适配。

首先 WordPress 本身并没有相关文章的推荐功能,网站之所以需要这样的功能出于两个原因,一方面是推荐相关的内容越优质,访客的留存和继续阅读将会增强,同样从优化角度来说会更加有利于搜索引擎抓取时对页面质量的提升,毕竟一个页面的内容,推荐内容越相关,说明这个页面的质量就越高。

所有废话不多说,下面子凡就把相关的 WordPress 实现相关文章推荐的代码分享出来,供 WordPress 开发者或者喜欢折腾的朋友借鉴参考。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
global $post;
$pid = $post->ID;//当前文章的 ID
$tags = [];
$limit = 6;//自定义数量
$post_tags = get_the_terms($pid,'post_tag');
if ( !empty($post_tags) && !is_wp_error($post_tags) ) {
	$tags = wp_list_pluck($post_tags, 'term_id');
}
$related_args = [
	'ignore_sticky_posts' => 1,
	'post_type' => 'post',
	'posts_per_page' => $limit,
	'post_status' => 'publish',
	'post__not_in' => [$pid],
	'tag__in' => $tags,
];
$relateds = new WP_Query($related_args);
$post_count = $relateds->post_count;
$output = '<ul>';
if($relateds->have_posts()){
	while($relateds->have_posts()){
		$relateds->the_post();
		$output .= '<li><a href="'.get_permalink().'">'.get_the_title().'</a></li>';
	}
	if($post_count<$limit){//数量还不够
		wp_reset_postdata();
		$limit = $limit - $post_count;//还差几条数据
		$pids = wp_list_pluck($relateds->posts,'ID');//获取已有文章 ID
		$pids = array_merge([$pid],$pids);//合并文章 ID
		$catids = wp_list_pluck(get_the_category($pid),'term_id');//分类 ID
		$related_args = [
			'ignore_sticky_posts' => 1,
			'post_type' => 'post',
			'posts_per_page' => $limit,
			'post_status' => 'publish',
			'post__not_in' => $pids,
			'category__in' => $catids,
		];
		$relateds = new WP_Query($related_args);
		$post_count = $relateds->post_count;
		if($relateds->have_posts()){
			while($relateds->have_posts()){
				$relateds->the_post();
				$output .= '<li><a href="'.get_permalink().'">'.get_the_title().'</a></li>';
			}
		}
	}//数量还不够
	if($post_count<$limit){//还不够
		wp_reset_postdata();
		$limit = $limit - $post_count;//还差数据
		$pids = array_merge($pids,wp_list_pluck($relateds->posts,'ID'));//合并文章 ID
		$related_args = [
			'ignore_sticky_posts' => 1,
			'post_type' => 'post',
			'posts_per_page' => $limit,
			'post_status' => 'publish',
			'post__not_in' => $pids,
		];
		$relateds = new WP_Query($related_args);
		if($relateds->have_posts()){
			while($relateds->have_posts()){
				$relateds->the_post();
				$output .= '<li><a href="'.get_permalink().'">'.get_the_title().'</a></li>';
			}
		}
	}//还不够
}
wp_reset_postdata();
$output .= '</ul>';
echo $output;

代码看上去很长,但是大家可以简单的看看其实还是很简单的,首先是根据当前文章 ID 获取当前文章设置的标签,根据标签来获取相同标签的文章,并且排除当前文章,如果文章数量不够,就继续或许当前文章分类下面的文章,并且排除当前文章和前面已经获取到的文章,如果还不够我们需要的数量,就整站获取其他文章补够数量。

更多关于WordPress优化及疑问可以添加留言

w.haolusi.com

本文链接:https://w.haolusi.com/wordpress-post-related.html

扫描二维码推送至手机访问。

版权声明:本文由豪鲁斯兴趣网发布,如需转载请注明出处。

本文链接:https://w.haolusi.com/?id=1815

标签: WordPress优化
分享给朋友:

“WordPress代码实现完善的文章相关推荐功能” 的相关文章

How do you think green energy will develop in the future?

How do you think green energy will develop in the future?

The future development of Green Energy is full of potential and opportUnities. With the advancement of science and technology and the global...

WordPress如何移除登录界面中英文语言切换框

WordPress如何移除登录界面中英文语言切换框

其实早在 WordPress 5.9 版本开始,WordPress 默认登录界面就增加了语言切换选项, 其目的就是允许用户自己选择要使用的语言登录后台。这个功能对于多语言网站或是国际性站点可能还有点用,但是对于国内用户来说就显得有些多余。最近子凡在做更深度的 WordPress 优化,同时也为了丰富...

MYSQL字符集有哪些

MYSQL字符集有哪些

MySQL 中的字符集是用来确定数据库中字符数据的编码方式,它决定了如何存储和检索数据。MySQL 中常用的字符集:UTF8:UTF-8 是一种 Unicode 字符编码方式,它可以表示世界上大部分的文字字符。MySQL 中的 UTF8 字符集最多只能存储 3 字节的 UTF-8 编码字符,...

最新可用!2024年Google谷歌镜像,Google学术镜像站(8月更新)

最新可用!2024年Google谷歌镜像,Google学术镜像站(8月更新)

本篇文章目录|Table of Contents Hide Google谷歌镜像-直接访问谷歌搜索01.Google谷歌搜索最新镜像入口02.Go...

WordPress别名slug增加点(.)符号支持

WordPress别名slug增加点(.)符号支持

熟悉 WordPress 的朋友们都知道,WordPress 在 URL 链接中的处理算得上是一刀切,所有的特殊符号及字符都是使用减号/连字符(-)来进行分隔,这其实是一种对搜索引擎非常友好的分隔方式,也是谷歌搜索引擎所推荐的连字符,其中谷歌有一句提示“不妨考虑在网址中使用连字符来分隔字...

BOOM Library Discography|影视广播级实录拟音音效素材库|Sound FX Library|下载|Download

BOOM Library Discography|影视广播级实录拟音音效素材库|Sound FX Library|下载|Download

        本篇文章目录|Table of ContentsHideSound FX:什么是音效专业的高品质音效 – BOOM Library试听下载(百度云)精品资源整理(百度云)Boom Library 全集(125)资源整理|百度云|未压缩文件¥30...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。