在多站点安装上为每个站点创建唯一的robots.txt

时间:2012-01-13 作者:Tobe

有人知道我怎么能拥有一个独一无二的机器人吗。我的wp multisite安装服务的每个域的txt文件?我搜索了插件,但没有找到合适的插件。

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

直接从源头(第1845行wp-includes/functions.php, 3.3.1):

function do_robots() {
    header( \'Content-Type: text/plain; charset=utf-8\' );

    do_action( \'do_robotstxt\' );

    $output = "User-agent: *\\n";
    $public = get_option( \'blog_public\' );
    if ( \'0\' == $public ) {
        $output .= "Disallow: /\\n";
    } else {
        $site_url = parse_url( site_url() );
        $path = ( !empty( $site_url[\'path\'] ) ) ? $site_url[\'path\'] : \'\';
        $output .= "Disallow: $path/wp-admin/\\n";
        $output .= "Disallow: $path/wp-includes/\\n";
    }

    echo apply_filters(\'robots_txt\', $output, $public);
}
因此,要定制它:

function my_custom_robots( $robots )
{
    if ( my_condition() )
        $robots .= "\\nDisallow: /something/else/";
    return $robots;
}
add_filter( \'robots_txt\', \'my_custom_robots\' );

SO网友:Mike Langone

我能够使用以下方法创建网站地图:

function my_custom_robots( $robots ){
    $GLOBALS[\'current_blog\']->blog_id; 
    if ( $blog_id !=(1) )
    $robots .= "Sitemap: /sitemap.xml";
    return $robots;
  }
add_filter( \'robots_txt\', \'my_custom_robots\' );

结束