WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru Получай пассивный доход от сайта с помощью браузерных PUSH уведомлений

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', '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;
}

#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 118
add_filter( 'wp_robots', 'wp_robots_sensitive_page' );
wp-includes/class-wp-customize-manager.php 1903
add_filter( 'wp_robots', 'wp_robots_no_robots' );
wp-includes/default-filters.php 240
add_filter( 'wp_robots', 'wp_robots_noindex' );
wp-includes/default-filters.php 241
add_filter( 'wp_robots', 'wp_robots_noindex_embeds' );
wp-includes/default-filters.php 242
add_filter( 'wp_robots', 'wp_robots_noindex_search' );
wp-includes/default-filters.php 243
add_filter( 'wp_robots', 'wp_robots_max_image_preview_large' );
wp-includes/default-filters.php 325
add_filter( 'wp_robots', 'wp_robots_no_robots' );
wp-includes/functions.php 3496
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' );
Комментариев нет
    Войти