wpseo_robots_array
Позволяет изменить массив с 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)
- Объект класса.
Примеры
#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 автоматически модифицировал мета тег, удалив несоответствующие текущему состоянию параметры.
Где вызывается хук
return \apply_filters( 'wpseo_robots_array', \array_filter( $robots ), $this );