Как изменить robots.txt в мультисайте WordPress
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 (интернет-магазин) добавлены правила, которые закрывают страницы с аккаунтом и корзиной, а для всех остальных сайтов закрыты категории и новости.