問題描述

預設情況下,只要您透過管理員設定停用索引

[ 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 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。