问题描述
默认情况下,只要您通过管理员设置禁用索引
[ 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 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。