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), а може бути і не підключено.

Якщо таксономія категорії підключена, то нам потрібно вивести список усіх рубрик, що випадає.

Цей код показує, як зробити таку перевірку.

// Виведемо список рубрики, якщо таксономія рубрик підключена до довільного типу запису
$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.0.2

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

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *