get_taxonomies()
Получает список зарегистрированных таксономий. Можно ограничить список по нужным параметрам.
Хуков нет.
Возвращает
Строку[]|WP_Taxonomy[]
.
- массив названий, если параметр $output равен 'names'
- массив объектов таксономий, если параметр $output равен 'objects'.
Массив объектов таксономий представляет собой массив, описывающий подробно каждую таксономию.
Использование
get_taxonomies( $args, $output, $operator );
- $args(массив)
Массив параметров, которым должен соответствовать результат функции, т.е. указав нужные параметры, можно получить данные только о тех таксономиях, которые нам необходимы.
Параметры которые можно указать в массиве:
- name - название таксономии;
- object_type - (массив) к каким типам записей прикреплена таксономия;
- hierarchical - true - покажет только древовидные таксономии;
- show_in_nav_menus
- cap - (объект) права;
- label - заголовок (название таксономии);
- labels - (объект) заголовки таксономии (различные названия);
- singular_label
- show_ui
- show_tagcloud
- public - true - получить публичные таксономии;
- update_count_callback
- rewrite
- query_var
- manage_cap
- edit_cap
- delete_cap
- assign_cap
- _builtin - false - исключить встроенные таксономии (например, category).
Полный список и что означает каждый параметр, смотрите в описании функции register_taxonomy().
По умолчанию: []
- $output(строка)
Вид в котором будет получен результат работы функции:
-
names
- Получить только названия зарегистрированных таксономий. По умолчанию. objects
- Получить массив объектов, содержащих полную информацию о таксономиях.
По умолчанию: "names"
-
- $operator(строка)
Логический оператор, определяющий, как обрабатывать несколько значений параметра $args. Принимает:
or
- выбирает таксономии, в которых совпадает любой из указанных элементов $args.and
- выбирает таксономии, в которых совпадают все элементы из $args.
По умолчанию: 'and'
Примеры
#1 Выведем на экран все зарегистрированные таксономии:
Получим массив названий всех зарегистрированных таксономий
$taxonomies = get_taxonomies(); foreach( $taxonomies as $taxonomy ) { echo '<p>'. $taxonomy. '</p>'; }
#2 Получим только публичные таксономии
Выведем на экран список публичных ('public' => true) не встроенных таксономий (произвольных) ('_builtin' => false):
<?php $args = array( 'public' => true, '_builtin' => false ); $output = 'names'; // или objects $operator = 'and'; // 'and' или 'or' $taxonomies = get_taxonomies( $args, $output, $operator ); if( $taxonomies ){ foreach( $taxonomies as $taxonomy ){ echo '<p>'. $taxonomy. '</p>'; } } ?>
#3 Получим таксономию 'genre'
Получим таксономию с названием 'genre' ('name' => 'genre') и выведем на экран название:
<?php $args = array( 'name' => 'genre' ); $output = 'objects'; // или objects $taxonomies = get_taxonomies( $args, $output ); if( $taxonomies ) { foreach ( $taxonomies as $taxonomy ) { echo '<p>' . $taxonomy->name . '</p>'; } } ?>
#4 Получим все таксономии, которые используются в REST API
$rest_taxes = get_taxonomies( [ 'show_in_rest' => true ], 'names' ); print_r( $rest_taxes ); /* Array ( [category] => category [post_tag] => post_tag [nav_menu] => nav_menu [note_tag] => note_tag ) */
#5 Получим таксономии типа записи
Если запросить таксономии с определенным типом поста, например, как показано ниже, будут показаны только таксономии, связанные с этим типом поста. Если таксономия связана с несколькими типами постов, она не будет показана.
$args = [ 'object_type' => [ 'post' ] ]; $taxonomies = get_taxonomies( $args ); print_r( $taxonomies ); /* Array ( [category] => category [post_tag] => post_tag [post_format] => post_format ) */
Альтернативой является использование get_object_taxonomies().
Заметки
- Global. WP_Taxonomy[]. $wp_taxonomies The registered taxonomies.
Список изменений
С версии 3.0.0 | Введена. |
Код get_taxonomies() get taxonomies WP 6.7.2
function get_taxonomies( $args = array(), $output = 'names', $operator = 'and' ) { global $wp_taxonomies; $field = ( 'names' === $output ) ? 'name' : false; return wp_filter_object_list( $wp_taxonomies, $args, $operator, $field ); }