Получение зарегистрированных таксономий в WordPress: функция `get_taxonomies()`

Получение зарегистрированных таксономий в 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 и делать их использование более удобным.

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *