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