is_object_in_taxonomy()
Проверяет связан ли указанный тип записи с указанной таксономией.
В $object_type можно указать несколько типов записей для проверки.
Хуков нет.
Возвращает
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), а может быть и не подключена.
Если таксономия 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.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 ); }