WordPress搭建的多站点网站使用的是相同的根目录,出于SEO优化考虑,需要给不同的站点添加不同的robots协议怎么办,把robots.txt文件放置在网站根目录显然行不通,那么就可以通过wordpress提供的robots_txt钩子生成虚似的robots.txt文件URL(类似于伪静态)实现。
新安装wordpress站点,没有禁止蜘蛛爬行,启用伪静态后,访问地址http://yourdomain/robots.txt,会返回下面的结果:
1
2
3
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
这是WordPress默认的robots.txt内容。如果想添加更多的规则,可以在当前使用的主题中添加下面的代码:
如果想添加更多的规则,就在当前使用的主题中添加下面的代码:
1
2
3
4
5
6
function robots_mod( $output, $public ) {
$output .= \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"Disallow: /feed\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\";
$output .= \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"Disallow: /trackback\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\";
return $output;
}
add_filter( \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'robots_txt\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\', \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'robots_mod\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\', 10, 2 );
上面代码返回的结果是:
1
2
3
4
5
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Disallow:/feed
Disallow: /trackback
如果不想要默认的robots.txt内容,则可以这样写
1
2
3
4
5
6
7
function robots_mod( $output, $public ) {
$output = \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"User-agent: *\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\";
$output .= \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"Disallow: /feed\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\";
$output .= \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"Disallow: /trackback\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\";
return $output;
}
add_filter( \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'robots_txt\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\', \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'robots_mod\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\', 10, 2 );