is_tax

Срабатывает на архивной странице пользовательской таксономии. Условный тег.

Возвращает true, если зарегистрирована новая таксономия и пользователь зашел на страницу элемента этой таксономии (термина).

Аналог is_category(), is_tag(), но не заменяет их, а работает только с новыми произвольными таксономиями. Т.е. is_tax() вернет false на страницах архивов рубрик и меток!

Возвращает false, если для таксономии не предусмотрен параметр запроса во фронт-энде. Т.е. если при регистрации таксономии параметр query_var установлен в false. Смотрите: register_taxonomy().

Если нужно проверить находится ли запись в таксономии, используйте has_term()
✈ 1 раз = 0.000017с = очень быстро | 50000 раз = 0.02с = скорость света PHP 7.0.2, WP 4.4.2

Хуков нет.

Возвращает

true или false.

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

if( is_tax( $taxonomy, $term ) ){
	// это таксономия...
}
$taxonomy(строка/массив)
Название таксономии (slug). Можно указать несколько таксономий в массиве.
По умолчанию: ”
$term(строка/массив/число)
Название, ярлык или ID элемента таксономии (например: рубрики, метки).
По умолчанию: ”

Примеры

#1. Проверим, что мы находимся на странице архива таксономии

Ниже несколько примеров, когда функция is_tax() вернет true (сработает).

is_tax();
// когда отображается страница любой таксономии.

is_tax( 'channel' );
// когда выводятся записи таксономии 'channel', для любого элемента этой таксономии.

is_tax( 'channel', 'BBC1' );
// когда выводятся записи таксономии 'channel' для элемента (рубрики) 'BBC1'.

2. Особенность с таксономией «Формат Поста»

Форматы постов в WP реализованы через таксономии. Но ярлык элемента таксономии в них не используется как есть, как это у других такс, а к нему добавляется префикс post-format-.

Например, есть формат поста «Aside» с ярлыком «aside». Его название будет равно post-format-aside.

if( is_tax( 'post_format' ) ){
	// архивная страница для любого "Формата Поста".
}

if( is_tax( 'post_format', 'post-format-aside' ) ){
	// архивная страница "Формата Поста" aside.
}

Код из


wp-includes/query.php

WP 4.7.2

<?php
function is_tax( $taxonomy = '', $term = '' ) {
	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.' ), '3.1.0' );
		return false;
	}

	return $wp_query->is_tax( $taxonomy, $term );
}

Комментарии:


Оставить комментарий

Your email address will not be published. Required fields are marked *