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

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

8个月前 (08-27)admin网络科技30

这两天子凡把泪雪网的相关推荐功能进行了重写,将原来的文章相关推荐功能做了自我感觉非常优秀的改进,相比用其它 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代码实现完善的文章相关推荐功能” 的相关文章

告别焦虑,技术人的“慢功夫”哲学

告别焦虑,技术人的“慢功夫”哲学

我们现在处一个快节奏的时代,每一个行业都在高速发展,我们也常常被告知要抓住每一个机会,快速成长,迅速成功。但对许多技术人来说,所谓的“快”,有时反而会让我们失去平衡,陷入焦虑和迷茫, 常常又进入事倍功半的困境。之前遇到过一位刚入行不久的年轻技术人,他一脸焦虑地问我:“如果我现在不快点提高,是不是以后...

WordPress如何将管理员用户主页改为网站首页

WordPress如何将管理员用户主页改为网站首页

最近在做 WordPress 站群的一些项目测试,主题在调用作者的时候就会链接到作者主页,加上很多时候 WordPress 网站就只会使用一个账户来发布文章,虽然可以通过修改主题代码的方式将作者的链接直接链接到网站首页,但是作为一个优雅的 WordPress 开发者来说,肯定是不会轻易动主题源码的,...

WordPress标签实现追加自定义链接

WordPress标签实现追加自定义链接

WordPress 标签的用处说多不多,说少不少,其中利用 WordPress 标签做聚合页面优化是一种搜索引擎很喜欢的方式,或者说很多搜索引擎相比正文页面而言更喜欢抓取和收录标签页面,其次对于 WordPress 标签的作用就是用于文章关键词调用以及文章内链。那么今天子凡我我将利用几行代码来实现给...

MYSQL字符集有哪些

MYSQL字符集有哪些

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

最新可用!2024年最新Github镜像,更快部署下载(2024年08更新)

最新可用!2024年最新Github镜像,更快部署下载(2024年08更新)

本篇文章目录|Table of Contents Hide Github:伟大的共建社区01.GitHub 镜像可用站点02.GitHub-建设未...

FCPX/PR的剪辑时间线XML与字幕SRT互转|字幕Srt转XML互转工具|xml转srt|srt转fcpxml|Tutorial

FCPX/PR的剪辑时间线XML与字幕SRT互转|字幕Srt转XML互转工具|xml转srt|srt转fcpxml|Tutorial

本篇文章目录|Table of Contents Hide 概述应用场景FCPX/PR剪辑时间线XML与SRT字幕互转获取与安装:直接安装 ...

发表评论

访客

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