NoFollow Entire Website

时间:2015-01-14 作者:Howdy_McGee

默认情况下,无论何时通过管理设置禁用索引

[x]阻止搜索引擎为此网站编制索引

它在标题中添加了一个元标记,如下所示:

<meta name=\'robots\' content=\'noindex,follow\' />
我该如何将其更改为nofollow 而不是follow? 我觉得这很奇怪,因为它支持“跟踪”,并且总体上需要它noindex,nofollow.

我可以直接回音到wp_head 但这并不能解释wp登录之类的页面。

2 个回复
最合适的回答,由SO网友:Andrew Bartel 整理而成

我觉得这是一个很好的问题,所以我去挖掘。在默认过滤器中。php第208行有add_action(\'wp_head\', \'noindex\', 1); 自WordPress 4.1起。函数的作用是:依次检查是否已将blog\\u public选项设置为0。如果有,它将调用wp\\u no\\u 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";
    }
}

SO网友:Howdy_McGee

我想这最终对我有用。我更希望有更好的过滤器,但效果也一样。把这个扔进去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 );

结束

相关推荐

将域名硬编码为Yoast SEO规范URL

出于各种原因,我被要求跨多个子域复制wordpress博客。显然,这将导致重复的内容问题,我希望通过使用一个规范标记(指向单个子域(www))来缓解这一问题。然而,我正在网站上使用Yoast SEO。这将自动生成规范标记,并似乎使用我当时所在的子域。大概它是从WP\\u SITEURL设置或类似的设置中获取的,但我必须首先修改它以允许多个子域。我有没有办法强迫Yoast SEO对所有规范URL使用一个子域?我仍然需要站点上的所有链接和一般功能来利用其他子域(无论当前在哪个子域上),但规范应该始终指向单个子