wp_robotsхук-фильтрWP 5.7.0

Позволяет добавить или удалить директивы мета-тега robots.

Мета-тег robots выводится в HEAD части страницы. Пример:

<meta name='robots' content='директива, директива'>

<!-- например -->
<meta name='robots' content='noindex, follow, max-image-preview:large' />

Если в результате работы фильтра будет получен пустой массив (функция вернет пустой массив), то мета-тег robots не будет выведен.

Читайте также: Robots API в WodPress.

Смотрите возможные директивы мета-тега robots:

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

add_filter( 'wp_robots', 'wp_kama_robots_filter' );

/**
 * Function for `wp_robots` filter-hook.
 * 
 * @param array $robots Associative array of directives. Every key must be the name of the directive, and the corresponding value must either be a string to provide as value for the directive or a boolean `true` if it is a boolean directive, i.e. without a value.
 *
 * @return array
 */
function wp_kama_robots_filter( $robots ){

	// filter...
	return $robots;
}
$robots(массив)
Ассоциативный массив с парами [ директива => значение ]. В ключе указывается называние директивы. Значение может быть строкой, если это директива со значением или true если это логическая директива (не имеющая значение).

Примеры

0

#1 Закроем от индексации различные страницы сайта

add_filter( 'wp_robots', 'wp_kama_robots_tag' );

function wp_kama_robots_tag( $robots ){

	// закроем страницы вложений, пагинации и архивов записей
	if(
		is_attachment() ||
		is_paged() ||
		is_post_type_archive()
	){
		$robots['noindex'] = true;
	}

	// закроем таксономии, если для терминов не указано описание
	if(
		( is_category() || is_tag() || is_tax() )
		&& ! trim( get_queried_object()->description )
	){
		$robots['noindex'] = true;
	}

	// закроем страницы с параметром запроса ?filter
	if( isset( $_GET['filter'] ) )
		$robots['none'] = true;

	return $robots;
}
0

#2 Удалим имеющиеся директивы

Допустим, какой-то плагин закрывает от индексации страницы, которые закрывать не нужно. Исправим это:

add_filter( 'wp_robots', 'wp_kama_robots_tag' );

function wp_kama_robots_tag( $robots ){

	// удалим нежелательную директиву
	unset( $robots['noindex'] );

	return $robots;
}

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

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

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

wp_robots()
wp_robots
wp-includes/robots-template.php 32
$robots = apply_filters( 'wp_robots', array() );

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

wp-activate.php 119
add_filter( 'wp_robots', 'wp_robots_sensitive_page' );
wp-includes/class-wp-customize-manager.php 1916
add_filter( 'wp_robots', 'wp_robots_no_robots' );
wp-includes/default-filters.php 267
add_filter( 'wp_robots', 'wp_robots_noindex' );
wp-includes/default-filters.php 268
add_filter( 'wp_robots', 'wp_robots_noindex_embeds' );
wp-includes/default-filters.php 269
add_filter( 'wp_robots', 'wp_robots_noindex_search' );
wp-includes/default-filters.php 270
add_filter( 'wp_robots', 'wp_robots_max_image_preview_large' );
wp-includes/default-filters.php 365
add_filter( 'wp_robots', 'wp_robots_no_robots' );
wp-includes/functions.php 3862
add_filter( 'wp_robots', 'wp_robots_no_robots' );
wp-login.php 45
add_filter( 'wp_robots', 'wp_robots_sensitive_page' );
wp-signup.php 6
add_filter( 'wp_robots', 'wp_robots_no_robots' );