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

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








nofollow 還是非常實(shí)用的
謝謝倡萌的補(bǔ)充。
我發(fā)的原文只有方法一,方法二的插件只順口提了一句,倡萌把插件的代碼提出來拓展了方法二,又補(bǔ)充了更新穎的方法三。
感覺應(yīng)該向倡萌學(xué)習(xí)遇到問題研究透的精神。
恩恩 學(xué)習(xí)了 但是一般來說沒有誰會去添加nofollow吧 那樣就沒有家友情鏈接的必要了
感謝指教學(xué)習(xí)了!
樓主,有7個插件沒有更新
朋友觀察得真細(xì)心,呵呵,更新插件確實(shí)有些延遲。