wordpress代码实现文章内容tag关键字站内链接替插件法

文章内的关键词如果加上链接是有利于搜索引擎更好地收录的,WordPress有很多插件可以实现文章内容tag关键字站内链接,比较著名的插件有Auto Tags Link,但是能免插件实现的功能我们尽量不使用插件实现,今天分享一个非常有利于博客优化的方法

在主题文件夹function.php里面添加下面代码

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

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注