不用插件实现关键词自动添加链接

通过一定的SEO技术,比如为关键字tag添加内部链接,来优化你的博客,提高你的搜索引擎收录和排名是一定需要的。建立内部链接对网页排名是有好处的,就算不能提高网页排名, 建立内部链接也能增加一些页面浏览量,即提高PV。如果在发布文章时手动添加链接效果会很好,但如果含有较多关键字则实际操作起来比较麻烦,wordpress这类插件网上也比较多例如SEO Smart Links、Keyword Link Plugin;对于那些不喜欢用插件的童靴来说,能少用插件就尽量少用,今天介绍一个不用插件实现的方法。
将下面代码添加到functions.php,具体代码如下:

//连接数量
$match_num_from = 1; //一个关键字少于多少不替换
$match_num_to = 5; //一个关键字最多替换
//连接到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 = "<a href=\"$link\" title=\"".str_replace('%s',addcslashes($cleankeyword, '$'),__('View all posts in %s'))."\"";
$url .= 'target="_blank"';
$url .= ">".addcslashes($cleankeyword, '$')."</a>";
$limit = rand($match_num_from,$match_num_to);
//不连接的代码
$content = preg_replace( '|(<a[^>]+>)(.*)('.$ex_word.')(.*)(</a[^>]*>)|U'.$case, '$1$2%&&&&&%$4$5', $content);
$content = preg_replace( '|(<img)(.*?)('.$ex_word.')(.*?)(>)|U'.$case, '$1$2%&&&&&%$4$5', $content);
$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;
}

以上代码转自网络,在本主题下测试可用;

评论 ( 66)
  1. 沙发
    菜贩儿 2013-10-25 01:42

    冲突了,放上去之后第一篇文章显示不出来,不知道为什么

  2. 板凳
    从良未遂 2013-10-10 05:51

    拿走了

  3. 地板
    艾因 2013-08-03 13:18

    已阅,,,

  4. 4 楼
    大街前 2013-07-12 10:44

    晚上试试

  5. 5 楼
    一季花落 2013-07-08 13:27

    这个方法好 要不然要一个一个的添加麻烦

  6. 6 楼
    牛逼思维 2013-07-04 14:52

    添加tag太繁琐了,这个省力。。

  7. 7 楼
    Aivier 2013-06-27 10:22

    虽然对SEO好,但是我很讨厌这种添加关键词连接的文章

  8. 8 楼
    Sprit 2013-06-25 13:44

    能不用插件就不用插件,这是最好的。

  9. 9 楼
    神爱 2013-06-25 12:59

    不用了呢…