ECDaddy

Menu

自动给WordPress文章和评论中的外链添加nofollow属性

利用wordpress建站的同学,出于对SEO优化的考虑,对于文章或评论内容的站外连结,不少人都希望自动添加nofollow属性,直接将下面的代码添加到主题的目录下的functions.php 文件即可:

add_filter('the_content', 'auto_nofollow'); //nofollow文章內容的站外連結

add_filter('comment_text', 'auto_nofollow'); //nofollow評論內容的站外連結

function auto_nofollow($content) {

//return stripslashes(wp_rel_nofollow($content));

return preg_replace_callback('/<a>]+/', 'auto_nofollow_callback', $content);

}

function auto_nofollow_callback($matches) {

$link = $matches[0];

$site_link = get_bloginfo('url');

if (strpos($link, 'rel') === false) {

$link = preg_replace("%(href=S(?!$site_link))%i", 'rel="nofollow" $1', $link);

} elseif (preg_match("%href=S(?!$site_link)%i", $link)) {

$link = preg_replace('/rel=S(?!nofollow)S*/i', 'rel="nofollow"', $link);

}

return $link;

}

注:代码中的第1、3行分别是针对文章内容、评论内容的,请根据自己的需要选择。比如不需要自动给文章内容的站外连结添加nofollow 的话,就注销或删除第一行代码。

代码添加结束后,对是否对外链成功自动添加了nofollow属性进行测试。

PS:nofollow是HTML元标签(meta)的content属性和连结标签(a)的rel属性的一个值,告诉机器(爬虫)无需追踪目标页,为了对抗blogspam(博客垃圾留言信息),Google推荐使用nofollow,告诉搜寻引擎爬虫无需抓取目标页,同时告诉搜寻引擎无需将的当前页的Pagerank传递到目标页。但是如果你是通过sitemap直接提交该页面,爬虫还是会爬取,这里的nofollow只是当前页对目标页的一种态度,并不代表其他页对目标页的态度。

— 于 共写了1055个字
— 文内使用到的标签:

发表评论

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