web-dev-qa-db-ja.com

NoFollow全体のウェブサイト

管理者設定でインデックス作成を無効にしたときはいつでもデフォルトで

[x]検索エンジンによるこのサイトのインデックス作成を妨げる

ヘッダにメタタグを追加します。

<meta name='robots' content='noindex,follow' />

どうやってそれをnofollowではなくfollowに変更するのですか?私はそれが "フォロー"を可能にし、全体的にそれがnoindex,nofollowを望んでいることを奇妙に思う。

私はwp_headに直接エコーできますが、これはwp-loginなどのようなページを説明するものではありません。

6
Howdy_McGee

これは素晴らしい質問だと思ったので、私は掘り下げました。 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";
    }
}
4
Andrew Bartel

私はこれが私のために働いてしまったと思います。私はある種のより良いフィルタをもっと望んでいましたが、それは同様に機能します。これを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 );
2
Howdy_McGee