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

泥人传说
泥人传说
泥人传说
914
文章
112
评论
2020-12-3022:21:52
评论
272 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;
}

 

 

 

  • 本文由 发表于 2020-12-3022:21:52
  • 转载请务必保留本文链接:http://nrcs.xyz/web/10342.html
匿名

发表评论

匿名网友 填写信息

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