关键词自动内链-WordPress


前言

WordPress主题有很多对于SEO优化的方向,比如添加给页面添加meta标签,增加关键词和描述,图片增加alt信息等,还有一种方法是给文章中添加内链,本文将介绍一种将文章内的我们再来介绍另外一种方法,将文章中的和Tag标签自动转化为文章内链。这个功能可以使用wp-keyword-link内链插件插件来实现,本文将介绍一种不使用插件自动将文章关键词转换为内链的方法。

方法一

打开主题根目录下的functions.php文件,在里面添加下面的内容:

/*
* wordpress文章关键词自动内链
* http://lerm.net
*/
$match_num_from = 1; //一个关键字少于多少不替换
$match_num_to = 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" class="tag_link"';
            $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;
}
add_filter('the_content','tag_link',1);

第一行表示一篇文章中同一个关键字少于多少出现次数少于多少不替换;第二行表示一篇文章中同一个关键字最多出现多少次锚文本以上这段代码表示将在出现一个词的关键词转换为内链,并且只转换一次,可以更具需要去更换,当然,弱国内链太多可能会影响用户体验。

方法二

还有一种方法是将特定的关键词转换为内链,方法也非常简单,也是在functions.php文件中添加如下代码

//指定关键词内链
function content_keywords_link($text){
$replace = array(
'乐朦'       => '<a href="'.esc_url( home_url( '/') ).'" rel="home">乐朦</a>',  
);
$text = str_replace(array_keys($replace), $replace, $text);
return $text;
}
add_filter('the_content', 'content_keywords_link');

这里的关键词及链接可以自己定义,批量添加,减少了工作量。l例如:文章中出现的乐朦将指向首页。

总结

以上是两种将文章中的关键词转换为内链的方法,有利于SEO优化,获得更好的搜索引擎排名。完成后查看自己的博客,看看文章关键词是不是自动转换成锚文本了。具体效果看本文开头的关键词“WordPress主题”。(viawanlimm.com)

Warning:如果两个关键词有重合的部分,以上两段代码如果关键词中有重合的部分,其中一段代码会不起作用,请各位仔细斟酌!
更新:方法二中,如果图片有的alt属性和里面的关键词有相同的,竟然会被替换掉成内链,暂时先不用了!