• 欢迎访问奇跡の海网站,本站不上传任何资源,所有资源均来自于网络,欢迎加入奇跡の海~! QQ群
  • 本站下载资源为网络上收集整理而来,并且以计算机技术研究交流为目的,版权归原作者所有,仅供大家参考,学习,不存在任何商业目的与商业用途.
  • 本站系统镜像均来自于官方原版,ed2k可视为P2P下载链接。所有操作系统默认均为试用版,如有正版密钥可以有效激活,本站不提供任何激活和相关服务。

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

WP插件 奇跡の海 1年前 (2017-06-06) 171次浏览 已收录 0个评论 扫描二维码

近日被某主机商联系广告业务,附带让在友情链接处添加个链接,怕三好公民不乐意,所以特意说明可以为该链接添加 nofollow 属性的。但是三好公民在添加链接时,发现“链接关系(XFN)”列表中并无 nofollow 选项。如图:

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

那么如何添加 nofollow 选项呢?

方法 1:直接修改源代码

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>

然后你再添加链接时,就会在“链接关系(XFN)”列表中看到 nofollow 选项了。如图:

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

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

方法 2:使用 Add-nofollow-to-XFN 插件

如果你不想折腾代码,可以使用插件 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');

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

仍旧可以添加到主题的 functions.php :

/**
 * 一下两个钩子是为了保证<a href="http://www.seaomc.com/archives/tag/dm" title="查看更多关于代码的文章" target="_blank">代码</a>只在 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-&gt;ID, 'ARRAY_A');
    if (strpos($bookmark['link_rel'], 'nofollow') !== FALSE)
        $checked = ' checked=&quot;checked&quot;';
    else
        $checked = '';
    ?&gt;
    &lt;label for=&quot;sola_blogroll_nofollow_checkbox&quot;&gt;&lt;?php echo __('Nofollow this link?'); ?&gt;&lt;/label&gt;
    &lt;input value=&quot;1&quot; id=&quot;sola_blogroll_nofollow_checkbox&quot; name=&quot;sola_blogroll_nofollow_checkbox&quot;&lt;?php echo $disabled; ?&gt; type=&quot;checkbox&quot;&lt;?php echo $checked; ?&gt; /&gt; &lt;?php echo $message; ?&gt;
    &lt;?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);
}

效果:

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

该方法来自:http://www.solagirl.net/nofollow-wordpress-blogroll.html


版权声明:本站所有文章和资源使用BY-NC-SA协议授权发布 , 转载应当以相同方式注明文章来自“SeaOMC.COM->WordPress 为非友情链接添加 nofollow 属性的方法!在下边可以分享本文哦!
本文最后更新于2018年3月14日,已超过 1 年没有更新,如果文章内容或图片资源失效,请留言反馈,我们会及时处理,谢谢!
喜欢 (0)
[]
分享 (0)
奇跡の海
关于作者:
一个WordPress菜鸟!
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址