WordPress как на ладони

wpseo_robots_arrayхук-фильтрYoast 1.0

Позволяет изменить массив с meta robots в плагине Yoast SEO перед их использованием.

Ещё раньше отрабатывает фильтр wpseo_robots, который работает с meta robots в виде строки.

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

add_filter( 'wpseo_robots_array', 'wp_kama_wpseo_robots_array_filter', 10, 2 );

/**
 * Function for `wpseo_robots_array` filter-hook.
 * 
 * @param array                  $robots       The meta robots directives to be used.
 * @param Indexable_Presentation $presentation The presentation of an indexable.
 *
 * @return array
 */
function wp_kama_wpseo_robots_array_filter( $robots, $presentation ){

	// filter...
	return $robots;
}
$robots(массив)
Директивы meta robots, которые будут использованы (выведены на странице).
$presentation(Indexable_Presentation)
Объект класса.

Примеры

0

#1 Запретим индексацию страниц пагинации

По умолчанию Yoast SEO разрешает индексировать страницы пагинации и настаивает делать именно так, объясняя своё решение в статье Pagination & SEO: best practices.

На странице пагинации в фильтр приходит следующий массив с директивами meta robots

Array (
	[index] => index
	[follow] => follow
	[max-snippet] => max-snippet:-1
	[max-image-preview] => max-image-preview:large
	[max-video-preview] => max-video-preview:-1
)

А в коде самой страницы пагинации будет выведет мета тег:

<meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1' />

Запретим поисковым системам индексировать страницы пагинации, изменим массив:

add_filter( 'wpseo_robots_array', 'set_noindex_for_paged' );

function set_noindex_for_paged( $robots ) {
	if ( is_paged() ) {
		$robots['index'] = 'noindex';
	}

	return $robots;
}

Массив изменится:

Array (
	[index] => noindex
	[follow] => follow
	[max-snippet] => max-snippet:-1
	[max-image-preview] => max-image-preview:large
	[max-video-preview] => max-video-preview:-1
)

Изменится и выводимый на странице пагинации мета тег:

<meta name='robots' content='noindex, follow' />

Как видим, благодаря параметру noindex плагин Yoast SEO автоматически модифицировал мета тег, удалив несоответствующие текущему состоянию параметры.

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

Indexable_Presentation::filter_robots()
wpseo_robots_array
yoast/src/presentations/indexable-presentation.php 373
return \apply_filters( 'wpseo_robots_array', \array_filter( $robots ), $this );

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

Использование не найдено.
campusboy 4742youtube.com/c/wpplus
Создатель YouTube канала wp-plus, на котором делюсь своим опытом. Активный пользователь wp-kama.ru. WordPress-разработчик. Разработка сайтов и лендингов. Доработка существующих проектов. Сопровождение ресурсов.
Редакторы: Kama 9601
1 комментарий
    Войти