Получение зарегистрированных таксономий в WordPress
Функция get_taxonomies() позволяет получить список зарегистрированных таксономий в WordPress. Вы можете ограничить вывод, указав нужные параметры.
Использование функции get_object_taxonomies()
Для получения таксономий, связанных только с определёнными типами записей, используйте функцию get_object_taxonomies().
Использование
get_taxonomies( $args, $output, $operator );
Параметры функции
-
$args(массив): Это массив аргументов, который настраивает, какие таксономии будут возвращены. Например, вы можете указать параметры, чтобы получать данные только о нужных вам таксономиях.Возможные параметры:
name: имя таксономии.object_type: типы записей, к которым прикреплена таксономия (массив).hierarchical:true— возвращает только иерархические таксономии (например, категории).show_in_nav_menus: отображение в меню навигации.cap: объекты с правами.label: название таксономии.public:true— получать только публичные таксономии.
Смотрите полный список параметров в описании функции
register_taxonomy(). -
$output(строка): Как вы хотите получить результат функции:names(по умолчанию): получить только имена зарегистрированных таксономий.objects: получить массив объектов с полной информацией о таксономиях.
-
$operator(строка): Логический оператор, определяющий, как обрабатывать несколько значений параметра$args. Возможно использование:or: выбирает таксономии, соответствующие любому из указанных элементов.and: выбирает таксономии, соответствующие всем элементам.
Возвращаемое значение
- Массив строк (имена) или массив объектов WP_Taxonomy с информацией о таксономиях.
Примеры использования
Пример 1: Вывод всех зарегистрированных таксономий
$taxonomies = get_taxonomies();
foreach( $taxonomies as $taxonomy ) {
echo ''. $taxonomy. '
';
}
Пример 2: Получение только публичных таксономий
$args = [
'public' => true,
'_builtin' => false
];
$output = 'names'; // или 'objects'
$operator = 'and'; // 'and' или 'or'
$taxonomies = get_taxonomies( $args, $output, $operator );
if( $taxonomies ){
foreach( $taxonomies as $taxonomy ){
echo ''. $taxonomy. '
';
}
}
Пример 3: Получение таксономии "жанр"
$args = [
'name' => 'genre'
];
$output = 'objects'; // или 'names'
$taxonomies = get_taxonomies( $args, $output );
if( $taxonomies ) {
foreach ( $taxonomies as $taxonomy ) {
echo '' . $taxonomy->labels->name . '
';
}
}
Пример 4: Получение таксономий для конкретного типа записи
$args = [
'object_type' => [ 'post' ]
];
$taxonomies = get_taxonomies( $args );
print_r( $taxonomies );
/*
Array
(
[category] => category
[post_tag] => post_tag
)
*/
Примечания
- Глобальная переменная
$wp_taxonomiesсодержит все зарегистрированные таксономии.
История изменений
Функция была добавлена в версии WordPress 3.0.0.
Код функции
Если вам интересно, как выглядит код функции get_taxonomies, вот его пример:
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 );
}
Эта функция помогает разработчикам взаимодействовать с таксономиям�� в WordPress и делать их использование более удобным.