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

Nofollow,一个HTML标签的属性值。大概了解SEO的人都知道,不懂看这里,不再阐述

每次写文章,如果带有外部链接,都得把编辑器切换到代码视图,然后手动给a标签添加rel="nofollow",实在是烦不胜烦

使用WP插件吧?试了一些要么不生效,要么效率低,要么太臃肿很多用不到的功能

网上找解决方案?试了一些要么不生效,要么效率低,要么完全不明所以

好吧那只能自己写了

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

登陆上VPS(或虚拟主机等),找到WP安装目录下的wp-content/themes/主题名/目录

编辑function.php文件,在第一行的<?php后面按一下回车,然后把下面的代码敲上去

20160111145440

什么你问我为什么不直接把代码贴出来而要截图?其实刚开始我是贴出来的,但我的博客已经使用了这段代码,所以上面的第5行被匹配为链接,被强行加上了rel="external nofollow",真是蛋疼。试了很多方法也无法实现既能自己用而且贴出来也不会被匹配到(或因性能低下而放弃),因此只好贴图了。

保存,完事。这段代码的大意就是挂接了一个函数到文章内容过滤器上,这个函数的作用是匹配所有href属性,并判断该属性值是否为本站链接,如果不是,则添加rel="external nofollow"

就是这么简单粗暴精简,秒杀网上一切乱七八糟的教程和插件

6 条评论

点击这里取消回复。

昵称
  1. 两载博客


    你看看代码有没有问题,我添加到function.php之后,主页的文章就不显示。

    1. mokeyjay

      home_url()函数打错了

  2. 康伟意

    LZ辛苦了,支持一下!

  3. 小冷博客

    试了一下,没成功。

    1. mokeyjay

      目测是缓存问题

    2. mokeyjay

      是我弄错了,第3行应该是“preg_match_all(‘/href=”(.*?)”/’,$content,$matches);”才对,不知道为什么多出来了两句代码,奇怪