标签 – 蓝月网络 https://lanyueer.com 专注于WordPress外贸建站,主题插件汉化、配置 Sat, 16 Apr 2016 08:34:26 +0000 zh-CN hourly 1 WordPress无插件自动实现tag关键字内链,抛弃wp-keyword-link https://lanyueer.com/wordpress-tag-keyword-link/ Sat, 16 Apr 2016 08:34:26 +0000 http://lanyueer.com/?p=586 之前一直使用WP keyword link这个插件给文章中的关键字增加内链,以优化SEO。但插件多了对博客的速…

WordPress无插件自动实现tag关键字内链,抛弃wp-keyword-link,首发于蓝月网络。

]]>
之前一直使用WP keyword link这个插件给文章中的关键字增加内链,以优化SEO。但插件多了对博客的速度肯定有影响,所以找了个无插件实现的方法。实现起来也很简单,只需在主题文件夹中的function.php最后一个?>之前增加以下代码即可实现tag自动内链:

  1. //tag自动内链
  2. $match_num_from = 1;  //一篇文章中同一个关键字少于多少不锚文本(这个直接填1就好了)
  3. $match_num_to = 2; //一篇文章中同一个关键字最多出现多少次锚文本(建议不超过2次)
  4. //连接到WordPress的模块
  5. add_filter('the_content','tag_link',1);
  6. //按长度排序
  7. function tag_sort($a, $b){
  8. 	if ( $a->name == $b->name ) return 0;
  9. 	return ( strlen($a->name) > strlen($b->name) ) ? -1 : 1;
  10. }
  11. //改变标签关键字
  12. function tag_link($content){
  13. global $match_num_from,$match_num_to;
  14. 	 $posttags = get_the_tags();
  15. 	 if ($posttags) {
  16. 		 usort($posttags, "tag_sort");
  17. 		 foreach($posttags as $tag) {
  18. 			 $link = get_tag_link($tag->term_id);
  19. 			 $keyword = $tag->name;
  20. 			 //连接代码
  21. 			 $cleankeyword = stripslashes($keyword);
  22. 			 $url = "<a title="\"".str_replace('%s',addcslashes($cleankeyword," href="\"$link\"" target="_blank">".addcslashes($cleankeyword, '$')."</a>";
  23. 			 $limit = rand($match_num_from,$match_num_to);
  24.  
  25. 			//不连接的代码
  26.                          $content = preg_replace( '|(<a[^>]+>)(.*)('.$ex_word.')(.*)(]*>)|U'.$case, '$1$2%&&&&& %$4$5', $content);
  27. 			 $content = preg_replace( '|(<img)(.*?)('.$ex_word.')(.*?)(>)|U'.$case, '$1$2%&&&&& %$4$5', $content);
  28.  
  29. 				$cleankeyword = preg_quote($cleankeyword,'\'');
  30.  
  31. 					$regEx = '\'(?!((<.*?)|(<a.*?)))('. $cleankeyword . ')(?!(([^<>]*?)>)|([^>]*?))\'s' . $case;
  32.  
  33. 				$content = preg_replace($regEx,$url,$content,$limit);
  34.  
  35. 	$content = str_replace( '%&&&&& %', stripslashes($ex_word), $content);
  36.  
  37. 		 }
  38. 	 }
  39.     return $content;
  40. }

更新你的博客看看,是不是已经有效果啦?

WordPress无插件自动实现tag关键字内链,抛弃wp-keyword-link,首发于蓝月网络。

]]>