A-A+

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

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

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

通过检测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;
}

 

 

 

给我留言(如果文章当中有隐藏内容,请评论之后刷新当前页面。请认真评论,否则一律不给予通过!!!

icon_question icon_razz icon_sad icon_evil icon_exclaim icon_smile icon_redface icon_biggrin icon_surprised icon_eek icon_confused icon_cool icon_lol icon_mad icon_twisted icon_rolleyes icon_wink icon_idea icon_arrow icon_neutral icon_cry icon_mrgreen