Loading
0

WordPress無插件自動實現tag關鍵字內鏈,拋棄wp-keyword-link插件

之前一直使用WP keyword link這個插件給文章中的關鍵字增加內鏈,以優化SEO。但插件多了對博客的速度肯定有影響,所以找了個無插件實現的方法。實現起來也很簡單,只需在主題文件夾中的function.php最后一個?>之前增加以下代碼即可實現tag自動內鏈:

//tag自動內鏈
$match_num_from = 1;  //一篇文章中同一個關鍵字少于多少不錨文本(這個直接填1就好了)
$match_num_to = 2; //一篇文章中同一個關鍵字最多出現多少次錨文本(建議不超過2次)
//連接到WordPress的模塊
add_filter('the_content','tag_link',1);
//按長度排序
function tag_sort($a, $b){
	if ( $a->name == $b->name ) return 0;
	return ( strlen($a->name) > strlen($b->name) ) ? -1 : 1;
}
//改變標簽關鍵字
function tag_link($content){
global $match_num_from,$match_num_to;
	 $posttags = get_the_tags();
	 if ($posttags) {
		 usort($posttags, "tag_sort");
		 foreach($posttags as $tag) {
			 $link = get_tag_link($tag->term_id);
			 $keyword = $tag->name;
			 //連接代碼
			 $cleankeyword = stripslashes($keyword);
			 $url = "".addcslashes($cleankeyword, '$')."";
			 $limit = rand($match_num_from,$match_num_to);
 
			//不連接的代碼
                         $content = preg_replace( '|(]+>)(.*)('.$ex_word.')(.*)(]*>)|U'.$case, '$1$2%&&&&& %$4$5', $content);
			 $content = preg_replace( '|()|U'.$case, '$1$2%&&&&& %$4$5', $content);
 
				$cleankeyword = preg_quote($cleankeyword,'\'');
 
					$regEx = '\'(?!((<.*?)|(]*?)>)|([^>]*?))\'s' . $case;
 
				$content = preg_replace($regEx,$url,$content,$limit);
 
	$content = str_replace( '%&&&&& %', stripslashes($ex_word), $content);
 
		 }
	 }
    return $content;
}

更新你的博客看看,是不是已經有效果了。