wp_robots
Позволяет добавить или удалить директивы мета-тега 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', 'wp_kama_robots_filter' ); /** * Function for `wp_robots` filter-hook. * * @param array $robots Associative array of directives. Every key must be the name of the directive, and the corresponding value must either be a string to provide as value for the directive or a boolean `true` if it is a boolean directive, i.e. without a value. * * @return array */ function wp_kama_robots_filter( $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-includes/robots-template.php 32
$robots = apply_filters( 'wp_robots', array() );
Где используется хук в WordPress
wp-activate.php 119
add_filter( 'wp_robots', 'wp_robots_sensitive_page' );
wp-includes/class-wp-customize-manager.php 1907
add_filter( 'wp_robots', 'wp_robots_no_robots' );
wp-includes/default-filters.php 258
add_filter( 'wp_robots', 'wp_robots_noindex' );
wp-includes/default-filters.php 259
add_filter( 'wp_robots', 'wp_robots_noindex_embeds' );
wp-includes/default-filters.php 260
add_filter( 'wp_robots', 'wp_robots_noindex_search' );
wp-includes/default-filters.php 261
add_filter( 'wp_robots', 'wp_robots_max_image_preview_large' );
wp-includes/default-filters.php 357
add_filter( 'wp_robots', 'wp_robots_no_robots' );
wp-includes/functions.php 3797
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' );