WordPress 自动为文章添加已使用过的标签

IT资讯
IT资讯
IT资讯
1220
文章
271
评论
2020-12-3022:21:52
评论
2,631 1314字

看到这个标题,是不是觉得很神奇?

没有了,其实道理很简单:

通过检测wordperss的标签库当中的标签与文章当中的内容进行对比,如果有相同的,则将这些词添加进当前文章的Tag标签与文章页的关键词当中,还有,还有,文章当中的这些词会自动添加内链一次(每个次只执行一次,关键词进行内链,链接出来的就是网站的内容聚合式的查询,出来的就会是与这个词相关的文章列表。)。

代码如下:

/** WordPress 自动为文章添加已使用过的标签 */
add_filter('the_content', 'auto_add_tags', 1 );
function auto_add_tags($content){
	$tags = get_tags( array('hide_empty' => false) );
	$limit = 1; // 设置同一个标签添加几次链接	
	$post_id = get_the_ID();
	if ($tags) {
		foreach ( $tags as $tag ) {
			// 如果文章内容出现了已使用过的标签,自动添加这些标签
			if ( strpos($content, $tag->name) !== false)
				wp_set_post_tags( $post_id, $tag->name, true );
 
			//替换文中出现的tag,替换次数需要设置limit
			$link = get_tag_link($tag->term_id);
			$keyword = $tag->name;
			if (preg_match_all('|(<h[^>]+>)(.*?)'.$keyword.'(.*?)(</h[^>]*>)|U', $content, $matchs)) {continue;}
			if (preg_match_all('|(<a[^>]+>)(.*?)'.$keyword.'(.*?)(</a[^>]*>)|U', $content, $matchs)) {continue;}
 
			$cleankeyword = stripslashes($keyword);
			$url = "<a href=\"$link\" title=\"".str_replace('%s',addcslashes($cleankeyword, '$'),__('查看与 %s 相关的文章', 'begin' ))."\"";
			$url .= ' target="_blank"';
			$url .= ">".addcslashes($cleankeyword, '$')."</a>";
			$cleankeyword = preg_quote($cleankeyword,'\'');
			$regEx = '\'(?!((<.*?)|(<a.*?)))('. $cleankeyword . ')(?!(([^<>]*?)>)|([^>]*?</a>))\'s' . $case;
			$content = preg_replace($regEx,$url,$content,$limit);
			$content = str_replace( '%&&&&&%', stripslashes($ex_word), $content);
 
		}
	}
	return $content;
}

 

 

 

  • Copyright ©  PC在线云端  版权所有.
  • 转载请务必保留本文链接:https://www.gaofumei.net/web/10342.html
Orgorg速率最高可达1000Mbps,流畅观看Youtube 4K、TikTok,支持 Windows、Android、iOS、Mac,支持 微信、支付宝 付款!
超高性价比,新用户注册送1元,可直接在商店购买套餐。节点和负载服务器很多,稳定性和速度有保障。有共享流媒体会员。有三端VPN程序。最萌の云 ☁️顶级云服务商,超过50个G口节点,上百台服务器负载加速,稳且快,高峰秒8K。提供网飞等会员共享,超值!限时免费尝鲜!
全球数据中心,多点BGP保证速度,无视晚高峰,全天4K秒开,IPLC专线无惧封锁
全IEPL /青云跨境,高峰时期稳定8K播放,流媒体影视, ChatGPT 解锁保障,客户端无日志保护您的隐私安全,稳定运行5年+
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: