is_object_in_taxonomy()
Перевіряє, чи вказаний тип запису з вказаною таксономією.
$object_type можна вказати кілька типів записів для перевірки.
get_object_taxonomies()
(дуже швидко) | 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 тип запису, типи записів або об’єкт запису).
Приклади
#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 }
#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() 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 ); }