代码实现主题外部网址自动添加nofollow属性和_blank新窗口打开

虫子君
478
文章
208
评论
2019.11. 2713:11:38 评论 406 1924字阅读6分24秒

经常在网站圈子当中混的小伙伴们一定知道“nofollow”属性,其意思是告诉搜索蜘蛛,这个链接跟我没有关系,你不用抓了。很多时候我们的网站总是会需要插入一些外部网址,但是新站的权重太低,尽可能节省网站权重的流逝,让自己的网站变得非常健康,所以对于外部网址添加nofollow属性和_blank新窗口打开,还是非常重要的。

实现的办法这里虫子君给同学们提供三个,其中一个是插件解决方案,(当然这是一个seo插件)。

1、代码解决

wordpress的后台中,找到外观——主题编辑——function.php文件,将以下代码粘贴到最后,保存即可。

<?php
//给所有外链添加nofollow
add_filter('the_content','the_content_nofollow,999);function the content nofollow($content){
preg_match_al1('/href="(.*?)"/',$content,$matches);if($matches){
$home url=home url();foreach($matches[1]as $val){
if(strpos($val,$home url)===false){
$content=str_replace('href="".$val.'"','href="".$val.'"rel="external nofollow"',$content);return $content;}

上面的这一段代码,虫子君没有验证过,下面会有一个我自己验证过的。

2、第二个方法

这个方法是虫子君在“晋哥哥博客当中拿的,虽然不是他的原创但是饮水之恩,不可忘!

本来晋哥哥是提供了两个办法的,但是第一个办法经过虫子君自己的测试以后发现,行不通,所以就放弃了。

使用方法:将下面的代码完整的复制到WordPress主题当中的function.php文件当中即可。
/**
 * WordPress外链自动新窗口打开并添加nofollow属性 - 方法二
 * https://www.dujin.org/12336.html
 */
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;
}

第三个方法-利用“DX-SEO”插件实现

这个插件已经算是一个古董一样的存在了吧,目前还是可以找到的,可以再其他的博客当中找一下哈,虫子君这里也忘记在哪里下载到的了。

您也可以去作者的网站上面下载:作者博客地址

刚虫子君又看了一下一些类似的插件,发现可以实现外部网址添加“nofollow”太多了,All in One SEO Pack这个仍然还在wordpress应用商店当中的插件也是可以支持的。

展开全文
  • 能够在茫茫人海遇见本就是缘分,恰好我在写,恰好你在看我的博客,这一切都是刚刚好。
  • 本站所有的文章都是源自我的自己的原创,如果您觉得某一篇文章写的不错,转载不用留言,赏我个链接就行!

说点什么

登录 发表评论
avatar
2000
  
smilegrinwinkmrgreenneutraltwistedarrowshockunamusedcooleviloopsrazzrollcryeeklolmadsadexclamationquestionideahmmbegwhewchucklesillyenvyshutmouth
照片和图像文件
 
 
 
音频和视频文件
 
 
 
其他档案类型
 
 
 
  订阅  
提醒