do_robotstxtхук-событиеWP 2.1.0

Позволяет полностью заменить содержимое страницы /robots.txt.

Срабатывает при формировании ответа виртуального файла robots.txt — до добавления стандартного содержимого. Хук позволяет вывести свои строки в начале ответа.

Когда запрашивают /robots.txt и в корне сайта нет физического файла, WordPress отдает «виртуальный» файл. Этот хук вызывается в процессе его формирования. Всё, что вы выведете через echo, попадёт в начало ответа до стандартного блока.

Используйте robots_txt, когда нужно дополнить дефолтный контент robots.txt.

Заметки:

  • Событие не передаёт параметров.

  • Вывод делайте через echo; возвращаемого значения нет.

  • Не выводите заголовки — WordPress их отправляет сам.

  • Каждую директиву заканчивайте переводом строки \n.

  • Если в корне имеется физический robots.txt, веб-сервер отдаст его, и событие не сработает.

Использование

add_action( 'do_robotstxt', 'wp_kama_do_robotstxt_action' );

/**
 * Function for `do_robotstxt` action-hook.
 * 
 * @return void
 */
function wp_kama_do_robotstxt_action(){

	// action...
}

Примеры

#1 Заменим контент страницы /robots.txt

add_action( 'do_robotstxt', 'wp_kama_robots_txt' );

function wp_kama_robots_txt(){
	$lines = [
		'User-agent: *',
		'Disallow: /wp-admin/',
		'Disallow: /wp-includes/',
		'',
	];

	echo implode( "\r\n", $lines );

	die; // обрываем работу PHP
}

Теперь, пройдя по ссылке http://site.com/robots.txt увидим:

User-agent: *
Disallow: /wp-admin/
Disallow: /wp-includes/

#2 Блокируем конкретного бота

Добавляем секцию для «плохого» бота — запретить обход всего сайта.

add_action( 'do_robotstxt', 'wpk_block_badbot_in_robots' );

function wpk_block_badbot_in_robots() {
	echo "User-agent: BadBot\n";
	echo "Disallow: /\n\n";
}

Список изменений

С версии 2.1.0 Введена.

Где вызывается хук

do_robots()
do_robotstxt
wp-includes/functions.php 1715
do_action( 'do_robotstxt' );

Где используется хук в WordPress

Использование не найдено.