is_object_in_taxonomy()WP 3.0.0

Проверяет связан ли указанный тип записи с указанной таксономией.

В $object_type можно указать несколько типов записей для проверки.

Работает на основе: get_object_taxonomies()
1 раз — 0.000029 сек (очень быстро) | 50000 раз — 0.24 сек (очень быстро) | PHP 7.1.1, WP 4.7.2

Хуков нет.

Возвращает

true|false. True - если объект связан с таксономией, false - если нет.

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

if( is_object_in_taxonomy( $object_type, $taxonomy ){
	// проверка пройдена
}
$object_type(строка/массив/объект)
Название типа записи, массив названий типов записей или объект отдельной записи (по нему будет получен тип записи) (WP_Post, $post).
$taxonomy(строка)
Название таксономии, привязку к которой нужно проверить (к которой должен быть привязан указанный в $object_type тип записи, типы записей или объект записи).

Примеры

0

#1 Демонстрация работы функции

Простая проверка:

if( is_object_in_taxonomy( 'post', 'category' ) ){
	// у типа записи post есть таксономия category
}

Проверка по переданному объекту:

if( is_object_in_taxonomy( $post, 'category' ) ){
	// у типа записи к которому относится запись $post есть таксономия category
}

Проверка сразу нескольких типов записей (сложно представить когда это может быть нужно, но так можно):

if( is_object_in_taxonomy( array('post','mypost'), 'category' ) ){
	// у типа записи post или mypost есть таксономия category
}
0

#2 Выведем список терминов таксономии, если она связана с типом записи

Мы делаем форму для добавления нового типа записи из фронтенда.

Теперь допустим, мы заранее не знаем связан ли наш тип записи с таксономией. Т.е. мы создали новый тип записи и к нему может быть подключена таксономия рубрик (category), а может быть и не подключена.

Если таксономия category подключена, то нам нужно вывести выпадающий список всех рубрик.

Этот код показывает, как сделать такую проверку.

// Выведем список рубрики, если таксономия рубрик подключена к произвольному типу записи
$post_type = 'mypost'; // наш произвольный тип записи
if( is_object_in_taxonomy( $post_type, 'category' ) ){
	$dropdown_options = array(
		'show_option_all' => get_taxonomy( 'category' )->labels->all_items,
		'hide_empty'      => 0,
		'hierarchical'    => 1,
		'show_count'      => 0,
		'orderby'         => 'name',
		//'selected'        => $cat
	);

	echo '<label>Выберите рубрику:</label>';
	wp_dropdown_categories( $dropdown_options );
}

Список изменений

С версии 3.0.0 Введена.

Код is_object_in_taxonomy() WP 6.7.1

function is_object_in_taxonomy( $object_type, $taxonomy ) {
	$taxonomies = get_object_taxonomies( $object_type );
	if ( empty( $taxonomies ) ) {
		return false;
	}
	return in_array( $taxonomy, $taxonomies, true );
}