让WordPress文章内的所有外链自动添加nofollow

某些时候我们出于SEO考虑需要对WordPress文章中的外链添加nofollow标签来告诉搜索引擎不要追踪此链接,我们可以手动添加这个标签,但是如果一篇文章外链较多的话会显得非常麻烦,也不利于提高工作效率。

那么这里分享一个如何为wordpress文章的外链自动添加nofollow的方法,希望对大家有用。

Nofollow

一个HTML标签的属性值。大概了解SEO的人都知道,不再阐述,每次写文章,如果带有外部链接,都得把编辑器切换到代码视图,然后手动给a标签添加rel=”nofollow”,实在很麻烦,使用WP插件吧?试了一些要么不生效,要么效率低,要么太臃肿。

网上找解决方案?试了一些要么不生效,要么效率低,要么完全不明所以,那只能自己写了!

我们需要确定好选择哪一个WP主题,因为以下操作都要在主题目录里的function.php中进行。

  • 登陆上VPS(或虚拟主机等)
  • 找到WP安装目录下的wp-content/themes/主题名/目录
  • 编辑function.php文件
  • 在z最后一行的添加如下代码
//给文章外链添加nofollow
add_filter('the_content','web589_the_content_nofollow',999);
function web589_the_content_nofollow($content){
preg_match_all('/href="(.*?)" rel="external nofollow" target = "_blank" /',$content,$matches);
if($matches){
foreach($matches[1] as $val){
if( strpos($val,home_url())===false ) $content=str_replace("href=\"$val\"", "href=\"$val\" rel=\"external nofollow\" ",$content);
}
}
return $content;
}
//文章外链nofollow结束

或者

add_filter('the_content','the_content_nofollow',999);
    function the_content_nofollow($content) {
    preg_match_all('/href="(.*?)"/',$content,$matches);
    if(matches){
        $home_url=home_url();
        foreach($matches[1] as $val){
            if(strpos($val,$home_url)==false){
                $comtent=str_replace('href="'.$val.'"','href="'.$val.'"rel="external nofollow "',$content);
            }
        }
    }
    return $content;
    }

两段代码都可以达到效果

通过这个方法,文章中的外链就会自动添加nofollow标签,而不用我们手动去操作。

  • 优点就是快速方便
  • 缺点是不太好控制

比如某篇文章中某些外链你不想添加nofollow标签,那么就需要自己去权衡了。

留下评论