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

Click here to view original web page at wp-kama.ru

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

robots.

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

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

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

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

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

add_filter( 'wp_robots', 'filter_function_name_4116' );
function filter_function_name_4116( $robots ){
	// filter...

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

Примеры

#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;
}

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

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

add_filter( 'wp_robots', 'wp_kama_robots_tag' );

function wp_kama_robots_tag( $robots ){

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

	return $robots;
}

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

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

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