WordPress非友情链接添加nofollow标签的两种办法

 2017-03-15 11:47:15  113 人阅读  2 条评论

大多数友情链接下是不能添加nofollow标签的,但是我们的WordPress链接管理太过强大,除了友情链接还有很多其他的链接分类,比如一些广告链接,或自己个人收藏的一些链接,这些链接就有必要添加nofollow标签了,这个就是今天分享这篇文章的目的。

WordPress默认的链接管理中是没有nofollow标签选项的,比如我们在添加链接时,在“链接关系(XFN)”列表中并无 nofollow 选项,具体如图所示:

WordPress非友情链接添加nofollow标签的两种办法 WordPress 第1张

既然WordPress默认没有nofollow标签,那么我们的解决办法就是帮它增加一个nofollow标签选项,具体实现这个功能的有两个方法,具体如下:

方法一:直接修改WordPress源代码

以WordPress 4.7.3为例,编辑/wp-admin/includes/meta-boxes.php,在1155行添加如下代码:

  1. <tr>
  2.   <th scope="row">nofollow</th>
  3.   <td>
  4.     <fieldset>
  5.       <legend class="screen-reader-text"><span> nofollow标签 </span></legend>
  6.       <label for="nofollow"><input class="valinp" type="checkbox" name="nofollow" value="nofollow" id="nofollow" <?php xfn_check('nofollow'); ?> />nofollow</label>
  7.     </fieldset>
  8.   </td>
  9. </tr>

然后我们在添加链接的时候就会发现在“链接关系(XFN)”列表最后面一项中看到 nofollow标签 选项了。具体如下图所示:

WordPress非友情链接添加nofollow标签的两种办法 WordPress 第2张

提醒:不太推荐修改WP源代码,因为每次更新你都要修改一遍。

方法二:创建一个独立的Meta选项

既然方法一会出现WordPress升级一次就要修改一次,那么我们可以通过添加相关代码到主题的 functions.php文件中,以此创立一个独立的Meta选项,这样就可以一劳永逸了。具体方法如下:

直接将以下代码添加到到所使用主题的 functions.php文件最后一个?>的前面保存即可。

  1. /**
  2.  * 一下两个钩子是为了保证代码只在links页面显示
  3.  * 如果你想了解更多load-$page action的信息,访问http://codex.wordpress.org/Adding_Administration_Menus#Page_Hook_Suffix
  4.  */
  5. add_action('load-link.php', 'sola_blogroll_nofollow');
  6. add_action('load-link-add.php', 'sola_blogroll_nofollow');
  7. function sola_blogroll_nofollow() {
  8.     //通过action add_meta_boxes创建我们需要的Meta Box
  9.     add_action('add_meta_boxes', 'sola_blogroll_add_meta_box', 1, 1);
  10.     //通过filter pre_link_rel将数据保存
  11.     add_filter('pre_link_rel', 'sola_blogroll_save_meta_box', 10, 1);
  12. }
  13. //创建Nofollow Meta Box
  14. function sola_blogroll_add_meta_box() {
  15.     //翻译成中文就是,创建一个名叫Blogroll Nofollow的Meta Box,放在link页面的右侧边栏,Meta Box的结构
  16.     //由函数sola_blogroll_inner_meta_box产生
  17.     add_meta_box('sola_blogroll_nofollow_div', __('Nofollow标签'), 'sola_blogroll_inner_meta_box', 'link', 'side');
  18. }
  19. //输出Meta Box的HTML结构
  20. function sola_blogroll_inner_meta_box($post) {
  21.     $bookmark = get_bookmark($post->ID, 'ARRAY_A');
  22.     if (strpos($bookmark['link_rel'], 'nofollow') !== FALSE)
  23.         $checked = ' checked="checked"';
  24.     else
  25.         $checked = '';
  26.     ?>
  27.     <label for="sola_blogroll_nofollow_checkbox"><?php echo __('是否添加Nofollow标签?'); ?></label>
  28.     <input value="1" id="sola_blogroll_nofollow_checkbox" name="sola_blogroll_nofollow_checkbox"<?php echo $disabled; ?> type="checkbox"<?php echo $checked; ?> /> <?php echo $message; ?>
  29.     <?php
  30. }
  31. //保存用户的选择
  32. function sola_blogroll_save_meta_box($link_rel) {
  33.     $rel = trim(str_replace('nofollow', ''$link_rel));
  34.     if ($_POST['sola_blogroll_nofollow_checkbox'])
  35.         $rel .= ' nofollow';
  36.     return trim($rel);
  37. }

代码来自:http://www.solagirl.net/nofollow-wordpress-blogroll.html

添加以上代码保存之后,我们在添加链接的时候就会发现在右侧下方多了一个『nofollow标签』的选项了。我们在添加链接时,如果需要添加nofollow标签,就直接勾选即可。具体如下图所示:

WordPress非友情链接添加nofollow标签的两种办法 WordPress 第3张

下面我们来添加一个带有nofollow标签的懿古今链接来验证一下这个功能是否成功,通过查看源码,发现这个链接已经成功添加rel="nofollow"标签了。

WordPress非友情链接添加nofollow标签的两种办法 WordPress 第4张

Boke112建议大家如果需要为链接添加nofollow标签,建议采用方法二比较简单,只要我们不更换主题就可以一直使用下去,哪怕更换主题了,记得拷贝这段代码到新主题依然可以正常使用。

本文地址:http://boke112.com/3842.html
文章标签: ,   ,   ,  
关注我们:请关注一下我们的微信公众号:扫描二维码,公众号:aiboke112
版权声明:本文为原创文章,版权归  所有,欢迎分享本文,转载请保留出处!
WordPress/zblogPHP免费响应式博客主题Blogs

 发表评论


  1. 雅兮网
    雅兮网 【尚书】 @回复

    这个不错哦,可以用自带的链接管理系统 进行nofollow标签管理了

    • boke112导航
      boke112导航【村长】2017-03-15 22:53  回复

      @雅兮网是的,特别是方法二,添加到主题文件后就可以利用链接管理添加其他非友链了。