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