免插件用Tags做文章关键字内链

8,650 views次阅读
17 条评论

在我第二次优化博客的过程中《博客优化续》,提到过免插件使用tags作为文章关键字站内链接。

通过这种方法我们可以将文章里面的所有tag添加上链接,链接链到博客的tag标签页面,这样做不但方便我们查看相关文章,而且也有利于博客的seo优化(据说)。

几个月过去了,感觉这个内链还是蛮实用的,于是将代码分享给大家。其实这类代码网上挺多的,大家可以根据自己的需求选择修改。

方法如下:打开wordpress主题的function.php文件,在这个文件里面添加如下代码:

//连接数量
$match_num_from = 1;  //一个关键字少于多少不替换
$match_num_to = 10; //一个关键字最多替换
//连接到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;
}

就这么简单,心动不如行动~~

正文完
 0
评论(17 条评论)
xiaofeng
2013-03-03 19:13:02 回复

么有博客啊

 中国北京北京市联通
2013-03-04 09:38:35 回复

晕了。。。

 中国北京北京市联通
2013-03-04 11:59:09 回复

代码版不错! 用插件版比较好控制 :shock: 各有所需吧

 中国广东省深圳市电信
2013-03-04 13:35:16 回复

不错,值得参考。

 中国北京北京市联通
weipu2010
2013-03-04 13:53:10 回复

这分明是技术贴

 中国陕西省渭南市联通
2013-03-04 17:52:25 回复

好久没来了 :cool:

 中国山东省潍坊市联通
2013-03-04 20:37:26 回复

不错呢,好

 
2013-03-05 15:06:23 回复

有了插件版默认设置

 中国广东省广州市电信
2013-03-07 10:12:14 回复

自己手动插入的说… :eek:

 中国安徽省合肥市电信
2013-03-08 23:26:39 回复

好漂亮的博客

 中国陕西省西安市电信
2013-03-10 13:01:47 回复

不错,抱走

 
2013-03-12 11:10:30 回复

管用不?等下试试

 中国天津天津市电信