問題描述
預設情況下,只要您透過管理員設定停用索引
[ x ] Discourage search engines from indexing this site
它在標題中新增元標記,如下所示:
<meta name='robots' content='noindex,follow' />
如何更改為 nofollow 而不是 follow?我覺得奇怪,它使”follow” 和整體想要它 noindex,nofollow 。
我可以直接回到 wp_head,但這並不代表 wp-login 等類似的頁面。
最佳解決思路
以為這是一個很好的問題,所以我去挖。在第 208 行的 default-filters.php 中有從 WordPress 4.1 開始的 add_action('wp_head', 'noindex', 1); 。 noindex() 函式反過來檢查你是否設定了 blog_public 選項為 0. 如果你有,它呼叫 wp_no_robots() 這是簡單的:
function wp_no_robots() {
echo "<meta name='robots' content='noindex,follow' />n";
}
最後一個方法都不是可過濾的,但是一個簡單的外掛將會解決這個鉤子的問題:
/*
* Declare plugin stuff here
*/
remove_action('wp_head','noindex',1);
現在,你可以自由地勾勒出自己的行為來回應你想要的東西。
add_action('wp_head', 'my_no_follow', 1);
function my_no_follow() {
if ( '0' == get_option('blog_public') ) {
echo "<meta name='robots' content='noindex,nofollow' />n";
}
}
次佳解決思路
我想這最終為我工作。我更希望有一些更好的過濾器,但它的工作原理也一樣好。把它放在 functions.php 檔案中,你很好。
/** No Index No Follow Entire Website **/
function nofollow_meta() {
echo "<meta name='robots' content='noindex,nofollow' />n";
}
add_action( 'wp_head', 'nofollow_meta', 1 );
add_action( 'login_enqueue_scripts', 'nofollow_meta', 1 );
參考文獻
注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。