我爱幽兰异众芳,不将颜色媚春阳。
西风寒露深林下,任是无人也自香。

WordPress非友情链接添加nofollow属性的方法


本文共计3551个字,预计阅读时长需要9分钟。

以下分享三种方法均可实现给非友链添加nofollow属性的方法

一,创建一个独立的Meta选项

添加以下代码到functions.php文件中即可实现

/**

 * 一下两个钩子是为了保证代码只在links页面显示

 * 如果你想了解更多load-$page action的信息,访问http://codex.wordpress.org/Adding_Administration_Menus#Page_Hook_Suffix

 */

add_action('load-link.php', 'sola_blogroll_nofollow');

add_action('load-link-add.php', 'sola_blogroll_nofollow');




function sola_blogroll_nofollow() {

    //通过action add_meta_boxes创建我们需要的Meta Box

    add_action('add_meta_boxes', 'sola_blogroll_add_meta_box', 1, 1);

    //通过filter pre_link_rel将数据保存

    add_filter('pre_link_rel', 'sola_blogroll_save_meta_box', 10, 1);

}




//创建Nofollow Meta Box

function sola_blogroll_add_meta_box() {

    //翻译成中文就是,创建一个名叫Blogroll Nofollow的Meta Box,放在link页面的右侧边栏,Meta Box的结构

    //由函数sola_blogroll_inner_meta_box产生

    add_meta_box('sola_blogroll_nofollow_div', __('Blogroll Nofollow'), 'sola_blogroll_inner_meta_box', 'link', 'side');

}




//输出Meta Box的HTML结构

function sola_blogroll_inner_meta_box($post) {

    $bookmark = get_bookmark($post->ID, 'ARRAY_A');

    if (strpos($bookmark['link_rel'], 'nofollow') !== FALSE)

        $checked = ' checked="checked"';

    else

        $checked = '';

    ?>

    <label for="sola_blogroll_nofollow_checkbox"><?php echo __('Nofollow this link?'); ?></label>

    <input value="1" id="sola_blogroll_nofollow_checkbox" name="sola_blogroll_nofollow_checkbox"<?php echo $disabled; ?> type="checkbox"<?php echo $checked; ?> /> <?php echo $message; ?>

    <?php

}




//保存用户的选择

function sola_blogroll_save_meta_box($link_rel) {

    $rel = trim(str_replace('nofollow', '', $link_rel));

    if ($_POST['sola_blogroll_nofollow_checkbox'])

        $rel .= ' nofollow';

    return trim($rel);

}

效果图

创建一个独立的Meta选项效果图

二,通过Add-nofollow-to-XFN插件实现(本文末端附上插件下载)

如果你不想使用插件,你也可以在主题的 functions.php 添加下面的代码(来自于插件):

/*

Plugin Name: Add-nofollow-to-XFN

Plugin URI: http://www.slyar.com/blog/Add-nofollow-to-XFN

Description: 在后台链接管理的XFN关系中添加一个 nofollow 标签

Author: Slyar

Version: 1.2

Author URI: http://www.slyar.com/

*/

function admin_xfn() {?>

<script type="text/javascript">

addLoadEvent(addNofollowTag);

function addNofollowTag() {

  tables = document.getElementsByTagName('table');

  for(i=0;i<tables.length;i++) {

    if(tables[i].getAttribute("class") == "links-table") {

      tr = tables[i].insertRow(1);

      th = document.createElement('th');

      th.setAttribute('scope','row');

      th.appendChild(document.createTextNode('Follow'));

      td = document.createElement('td');

      tr.appendChild(th);

      label = document.createElement('label');

      input = document.createElement('input');

      input.setAttribute('type','checkbox');

      input.setAttribute('id','nofollow');

      input.setAttribute('value','nofollow');

      label.appendChild(input);

      label.appendChild(document.createTextNode(' nofollow'));

      td.appendChild(label);

      tr.appendChild(td);

      input.name = 'nofollow';

      input.className = 'valinp';

      if (document.getElementById('link_rel').value.indexOf('nofollow') != -1) {

        input.setAttribute('checked','checked');

      }

      return;

    }

  }

}

</script>

<?php

}

add_action('admin_head','admin_xfn');

使用Add-Nofollow-To-XFN插件(或代码)效果图

效果图:

三,直接修改WordPress源代码(4.5.3为例)(不推荐使用此方法,因为版本更新就需要重新修改太过麻烦)

编辑/wp-admin/includes/meta-boxes.php,在1145行添加如下代码:

<tr>

  <th scope="row">nofollow</th>   

  <td>

    <fieldset>

      <legend class="screen-reader-text"><span> nofollow </span></legend>

      <label for="nofollow"><input class="valinp" type="checkbox" name="nofollow" value="nofollow" id="nofollow" <?php xfn_check('nofollow'); ?> />nofollow</label>

    </fieldset>

  </td>

</tr>

插件下载:

温馨提示: 此处内容需要 评论本文刷新本页 才能查看!

赞(1) 打赏
转载请注明来源:微百知博客 » WordPress非友情链接添加nofollow属性的方法
分享到: 更多 (0)

评论 1

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #1

    之前DUX有在用这个 管用,现在主题BUG多,直接把评论链接写死带nofollow,不管那么多。

    猫鼬 4个月前 (06-16) 来自天朝的朋友 谷歌浏览器 Windows 10 回复

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏