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