WordPress динамически создает robots.txt. Чтобы перезаписать его при обычной установке без использования нескольких сайтов, вы можете просто загрузить статический файл robots.txt на сервер. При установке системы мультисайтов это приведет к перезаписи файла robots.txt для всех сайтов, что не всегда является нужным результатом. В этой заметке мы обсудим, как можно изменить robots.txt для отдельных сайтов мультисайта.
В WordPress существует функция do_robots()
и фильтр do_robotstxt
, который позволяет изменять вывод динамически создаваемого файла robots.txt. Функция is_multisite()
позволяет проверить включена ли мультисайтовость на сайте. Функция get_current_blog_id()
возвращает идентификатор текущего сайта, который мы можем использовать для проверки конкретного сайта и добавления правил в файл robots.txt. Примерно так это может выглядеть:
function custom_robots_txt( $output, $public ) {
if ( is_multisite() ) {
if ( get_current_blog_id() == 1 ) {
$output .= "Disallow: /account/\n";
$output .= "Disallow: /cart/\n";
} else {
$output .= "Disallow: /category\n";
$output .= "Disallow: /news\n";
}
}
return $output;
}
add_filter( 'robots_txt', 'custom_robots_txt', 20, 2 );
Для сайта с ID 1 (интернет-магазин) добавлены правила, которые закрывают страницы с аккаунтом и корзиной, а для всех остальных сайтов закрыты категории и новости.