is_sitemap()
Определяет, относится ли текущий запрос к XML-карте сайта WordPress.
Проверяет индекс карты сайта и карты отдельных провайдеров.
Запросы XSL-стилей карты сайта не учитываются - /wp-sitemap.xsl и /wp-sitemap-index.xsl.
Условный тег работает только после разбора основного запроса - см wp(). При раннем вызове функция выдаст предупреждение и вернёт false.
Работает на основе: WP_Query::is_sitemap()
Хуков нет.
Возвращает
true|false.
true— запрос относится к XML-карте сайта.false— запрос не относится к карте сайта или основной запрос ещё не создан.
Использование
if ( is_sitemap() ) {
// ваш код для карты сайта
}
Примеры
#1 Проверка запроса XML-карты сайта
Это просто демонстрационный пример, который показывает, как для карты сайта добавить свой кастомный HTTP-заголовок.
add_action( 'template_redirect', 'wp_kama_handle_sitemap_request' );
function wp_kama_handle_sitemap_request() {
if ( ! is_sitemap() ) {
return;
}
header( 'X-WP-Sitemap: 1' );
}
#2 Проверка XML-карты сайта и её XSL-стилей
Учитывает XML-карты, а также запросы /wp-sitemap.xsl и /wp-sitemap-index.xsl.
add_action( 'template_redirect', 'wp_kama_handle_all_sitemap_requests' );
function wp_kama_handle_all_sitemap_requests() {
$is_stylesheet = (bool) get_query_var( 'sitemap-stylesheet' );
if ( ! is_sitemap() && ! $is_stylesheet ) {
return;
}
header( 'X-WP-Sitemap: 1' );
}Заметки
- Global. WP_Query.
$wp_queryWordPress Query object.
Список изменений
| С версии 7.1.0 | Введена. |
Код is_sitemap() is sitemap WP 7.1
function is_sitemap(): bool {
global $wp_query;
if ( ! isset( $wp_query ) ) {
_doing_it_wrong( __FUNCTION__, __( 'Conditional query tags do not work before the query is run. Before then, they always return false.' ), '7.1.0' );
return false;
}
return $wp_query->is_sitemap();
}