Функция возвращает массив, состоящий из названий таксономий (или их объектов).
$taksonomii = get_taxonomies(); // так как $taksonomii - это массив, то давайте пропустим его через цикл foreach( $taksonomii as $taksonomiya ) { echo $taksonomiya . '<br />'; }
Для чистого сайта на WP результат будет следующим:
category post_tag nav_menu link_category post_format
Хочу отметить, что в большинстве примеров, которые вы найдёте в интернете, действие функции этим и ограничивается.
То есть функция get_taxonomies()
в основном используется для получения названий таксономий, которые в дальнейшем можно использовать в других функциях, таких как например get_the_terms().
Однако мы также можем получить и целые объекты таксономий со всей сопутствующей информацией.
Суть следующего примера в точности такая же, как и предыдущего — вывести названия всех зарегистрированных таксономий, каждый с новой строки.
Первый параметр оставляем пустым, про него я расскажу чуть позже.
Для того, чтобы функция get_taxonomies()
возвращала массив объектов, её второй параметр должен содержать любую строку, отличную от names
, то есть:
names
— функия возвращает массив строковых значений, а именно — названий таксономий,любая_строка
— функция возвращает массив объектов таксономий, в качестве параметра я указал objects
чисто для наглядности.$args = array(); // пустой массив пока что $taksonomii = get_taxonomies( $args, 'objects' ); foreach( $taksonomii as $taksonomiya ) { echo $taksonomiya->name . '<br />'; }
В примере я использовал echo $taksonomiya->name
для вывода названия таксономии, давайте же теперь разберемся со всеми параметрами объекта.
Хочу также отметить что все эти параметры (кроме buitin
) вы можете использовать при создании собственной таксономии.
$taksonomiya->labels->name
.array('post')
. Изменять этот массив для уже зарегистрированных таксономий позволяет функция register_taxonomy_for_object_type().post_categories_meta_box
для таксономий с иерархией и post_tags_meta_box
для таксономий без иерархии. Если задано false
, то метабокс не будет отображаться вообще.$taksonomiya->public
.
$taksonomiya->public
.
$taksonomiya->show_ui
.$taksonomiya->show_ui
.
false
по умолчанию.
false
, если постоянные ссылки для неё отключены:
slug
(строка) — собственно то, что отображается в URL, напрмиер /tag/
, если не задан, то соответсвует названию таксономии,with_front
(логическое) — нужно ли в URL использовать $wp_rewrite->front
(по умолчанию false
), о том, что это такое, подробнее здесь,hierarchical
(логическое) — будут ли добавляться в URL также ярлыки родительских элементов таксономии (по умолчанию — false
),ep_mask
— маска, по умолчанию EP_NONE
./?platform=$название_платформы
. Если установлено значение false
, то метод использования в URL уже не прокатит. Вот мы и подошли к тому функционалу функции, использование которого я пока что ещё не видел нигде.
Для начала я хочу вам сказать, что по сути всё, чем занимается функция get_taxonomies()
— это работает уже с готовым массивом объектов таксономий $wp_taxonomies
. Так что если проблем с объектами PHP у вас нет, то вы также можете использовать этот глобальный массив напрямую.
Так вот, мы уже рассмотрели, как функция может вывести массив названий таксономий, как обратиться к элементам объекта, теперь остановимся на двух параметрах функции, которые позволяют фильтровать полученный результат, к примеру давайте получим все встроенные _builtin
таксономии с иерархией hierarchical
.
// в $args мы просто перечисляем все параметры объекта таксономии, которые нас интересуют $args = array( 'hierarchical' => true, '_builtin' => true ); // 'and' (И - все значения параметров $args должны соответстовать - по умолчанию), 'or' (ИЛИ - хотя бы одно значение $args должно соответствовать) $operator = 'and'; $taksonomii = get_taxonomies( $args, 'objects', $operator );
Чтобы оставить комментарий, пожалуйста, зарегистрируйтесь или войдите.
Здравствуйте!
Допустим есть таксономии 1) "По году" 2) "По жанру 3) "По типу"
Не получается вывести информацию об определенной таксономии, например показать только "По жанру". Если я использую просто
то выводится все созданные "По году: 2000 . По жанру: Романтика, боевик . По типу: Фильм уже вышел".
Подскажите, пожалуйста, как можно сделать так, чтобы на странице материала, где мы сейчас находится, к примеру, в определенном месте отобразилось только "По жанру: Романтика, боевик"?
Спасибо.
Решил вопрос, помощь не требуется.
А почему бы не поделиться решением? ))