问题描述

默认情况下,只要您通过管理员设置禁用索引

[ 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 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。