is_robots()WP 2.1.0

Проверяет делается ли запрос к файлу robots.txt. Условные тег.

Если в корне сайта нет физического файла robots.txt то WordPress генерирует контент такого файла налету. Для такого запроса будет срабатывать этот условный тег.

Для такого запроса к файлу robots.txt которого физически не существует, в файле template-loader.php срабатывает хук do_robots - на этом хуке генерируется контент файла :

// Process feeds and trackbacks even if not using themes.
if ( is_robots() ) {
	/**
	 * Fired when the template loader determines a robots.txt request.
	 *
	 * @since 2.1.0
	 */
	do_action( 'do_robots' );
	return;
}

Это обертка для конструкции:

global $wp_query;
$wp_query->is_robots();
Работает на основе: WP_Query::is_robots()
1 раз — 0.000014 сек (очень быстро) | 50000 раз — 0.02 сек (скорость света) | PHP 7.1.2, WP 4.7.3

Хуков нет.

Возвращает

true|false.

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

if( is_robots() ){
	// это файл робота
}

Примеры

0

#1 Проверим текущий запрос robots.txt

Проверить запрос можно после того как он будет обработан это хук wp. Допустим нам нужно сделать что либо на этом хуке, но мы не хотим ничего делать если это запрос к файлу robots.txt:

do_action( 'wp', function(){

	if( is_robots() ){
		return;
	}

	// делаем что либо
} );

Заметки

  • Global. WP_Query. $wp_query WordPress Query object.

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

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

Код is_robots() WP 6.5.2

function is_robots() {
	global $wp_query;

	if ( ! isset( $wp_query ) ) {
		_doing_it_wrong( __FUNCTION__, __( 'Conditional query tags do not work before the query is run. Before then, they always return false.' ), '3.1.0' );
		return false;
	}

	return $wp_query->is_robots();
}