WordPress技巧:自动为站外链接添加nofollow属性

许多新手站长应该不知道nofollow属性有什么用吧。暮城简单介绍一下:nofollow是HTML文档中a标签的属性值,用来告诉搜索引擎不要追踪该链接的标识。你的网站A中有一个外链B,搜索引擎访问你的网站A的时候会顺带去访问链接B,这样就分散了搜索引擎的注意力,也就是网站权重。而nofollow属性的作用就是不让搜索引擎访问你的网站的时候分散精力,去访问与你站点无关的页面。

添加nofollow属性的方法:在a标签上增加rel=”nofollow”,下面给出两个链接,看后你就明白了。

<a href="https://www.mcheng.cn/">暮城博客</a>
<a href="https://www.mcheng.cn/" rel="nofollow">暮城博客</a>

不少新手站长建立网站已经有一段时间了,一个一个的手动增加nofollow属性简直丧心病狂。所以暮城今天给出一段代码,用来自动添加nofollow属性。

将如下代码复制到主题functions.php文件下即可:

/* 自动给页面的站外链接添加nofollow属性和新窗口打开 暮城博客 www.mcheng.cn 开始*/
add_filter( 'the_content', 'cn_nf_url_parse');
 
function cn_nf_url_parse( $content ) {
 
	$regexp = "<a\s[^>]*href=(\"??)([^\" >]*?)\\1[^>]*>";
	if(preg_match_all("/$regexp/siU", $content, $matches, PREG_SET_ORDER)) {
		if( !empty($matches) ) {
 
			$srcUrl = get_option('siteurl');
			for ($i=0; $i < count($matches); $i++)
			{
 
				$tag = $matches[$i][0];
				$tag2 = $matches[$i][0];
				$url = $matches[$i][0];
 
				$noFollow = '';
 
				$pattern = '/target\s*=\s*"\s*_blank\s*"/';
				preg_match($pattern, $tag2, $match, PREG_OFFSET_CAPTURE);
				if( count($match) < 1 )
					$noFollow .= ' target="_blank" ';
 
				$pattern = '/rel\s*=\s*"\s*[n|d]ofollow\s*"/';
				preg_match($pattern, $tag2, $match, PREG_OFFSET_CAPTURE);
				if( count($match) < 1 ) $noFollow .= ' rel="nofollow" '; $pos = strpos($url,$srcUrl); if ($pos === false) { $tag = rtrim ($tag,'>');
					$tag .= $noFollow.'>';
					$content = str_replace($tag2,$tag,$content);
				}
			}
		}
	}
 
	$content = str_replace(']]>', ']]>', $content);
	return $content;
 
}
/* 自动给页面的站外链接添加nofollow属性和新窗口打开 暮城博客 www.mcheng.cn 结束*/

 

点赞

发表评论

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