當(dāng)前位置:首頁>WordPress建站>網(wǎng)站SEO>WordPress為非友情鏈接添加nofollow屬性的方法

WordPress為非友情鏈接添加nofollow屬性的方法

《三好網(wǎng)志》近日被某主機(jī)商聯(lián)系廣告業(yè)務(wù),附帶讓在友情鏈接處添加個鏈接,怕三好公民不樂意,所以特意說明可以為該鏈接添加nofollow屬性的。但是三好公民在添加鏈接時,發(fā)現(xiàn)“鏈接關(guān)系(XFN)”列表中并無 nofollow 選項(xiàng)。如圖:

WordPress為非友情鏈接添加nofollow屬性的方法

那么如何添加 nofollow 選項(xiàng)呢?

方法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>

然后你再添加鏈接時,就會在“鏈接關(guān)系(XFN)”列表中看到 nofollow 選項(xiàng)了。如圖:

WordPress為非友情鏈接添加nofollow屬性的方法

不太推薦修改WP源代碼,因?yàn)槊看胃履愣家薷囊槐椤?/p>

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

如果你不想折騰代碼,可以使用插件Add-nofollow-to-XFN實(shí)現(xiàn)同樣效果。當(dāng)然,你也可以在主題的 functions.php 添加下面的代碼(來自于插件):

/*
Plugin Name: Add-nofollow-to-XFN
Plugin URI: http://www.slyar.com/blog/Add-nofollow-to-XFN
Description: 在后臺鏈接管理的XFN關(guān)系中添加一個 nofollow 標(biāo)簽
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:創(chuàng)建一個獨(dú)立的Meta選項(xiàng)

仍舊可以添加到主題的 functions.php :

/**
 * 一下兩個鉤子是為了保證代碼只在links頁面顯示
 * 如果你想了解更多l(xiāng)oad-$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創(chuàng)建我們需要的Meta Box
    add_action('add_meta_boxes', 'sola_blogroll_add_meta_box', 1, 1);
    //通過filter pre_link_rel將數(shù)據(jù)保存
    add_filter('pre_link_rel', 'sola_blogroll_save_meta_box', 10, 1);
}
 
//創(chuàng)建Nofollow Meta Box
function sola_blogroll_add_meta_box() {
    //翻譯成中文就是,創(chuàng)建一個名叫Blogroll Nofollow的Meta Box,放在link頁面的右側(cè)邊欄,Meta Box的結(jié)構(gòu)
    //由函數(shù)sola_blogroll_inner_meta_box產(chǎn)生
    add_meta_box('sola_blogroll_nofollow_div', __('Blogroll Nofollow'), 'sola_blogroll_inner_meta_box', 'link', 'side');
}
 
//輸出Meta Box的HTML結(jié)構(gòu)
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);
}

效果:

nofollow-box

該方法來自:http://www.solagirl.net/nofollow-wordpress-blogroll.html

倡萌注:其實(shí)很早的版本開始,WordPress 就默認(rèn)隱藏了這個單獨(dú)的鏈接管理功能(新安裝WP的朋友估計是看不到了),推薦大家使用自定義菜單來實(shí)現(xiàn),不過很多主題作者仍舊使用鏈接管理功能,所以一般的用戶也只能跟著用。還是推薦主題作者可以更換為自定義菜單功能哦。

聲明:本站所有文章,如無特殊說明或標(biāo)注,均為本站原創(chuàng)發(fā)布。任何個人或組織,在未征得本站同意時,禁止復(fù)制、盜用、采集、發(fā)布本站內(nèi)容到任何網(wǎng)站、書籍等各類媒體平臺。如若本站內(nèi)容侵犯了原著者的合法權(quán)益,可聯(lián)系我們進(jìn)行處理。

給TA打賞
共{{data.count}}人
人已打賞
歡迎關(guān)注WordPress大學(xué)公眾號 WPDAXUE
網(wǎng)站SEO

WP Super Subdomains 讓 WordPress 使用子域名訪問分類/標(biāo)簽等頁面

2016-6-24 8:19:00

WordPress插件網(wǎng)站SEO

WordPress插件推薦:XML 站點(diǎn)地圖 & 谷歌新聞訂閱源

2016-12-22 8:09:08

5 條回復(fù) A文章作者 M管理員
  1. saylee

    nofollow 還是非常實(shí)用的

  2. 三好公民

    謝謝倡萌的補(bǔ)充。
    我發(fā)的原文只有方法一,方法二的插件只順口提了一句,倡萌把插件的代碼提出來拓展了方法二,又補(bǔ)充了更新穎的方法三。
    感覺應(yīng)該向倡萌學(xué)習(xí)遇到問題研究透的精神。

  3. 帥氣小琦琦

    恩恩 學(xué)習(xí)了 但是一般來說沒有誰會去添加nofollow吧 那樣就沒有家友情鏈接的必要了

?
個人中心
購物車
優(yōu)惠劵
今日簽到
有新私信 私信列表
搜索

楚雄市| 乌审旗| 临武县| 乌兰浩特市| 齐河县| 息烽县| 内江市| 诸城市| 海门市| 交口县| 广丰县| 鄂尔多斯市| 石棉县| 滦平县| 芮城县| 阆中市| 汤阴县| 朝阳县| 修武县| 泌阳县| 桐乡市| 兴安盟| 禹城市| 双江| 博白县| 辽中县| 吴桥县| 伊宁市| 稷山县| 越西县| 开阳县| 星子县| 桐庐县| 盘山县| 明星| 女性| 盐边县| 冀州市| 饶平县| 德庆县| 绩溪县|