Get_term() - функция WordPress
Опубликовано: 01.09.2018
Сейчас я не буду объяснять что такое таксономии , их элементы (на некоторых блогах их называют терминами, хотя я честно говоря не вижу связи между словами «рубрика» и «термин», ну да ладно, неважно).
В двух словах — в каждой таксономии есть свои элементы, например рубрики и метки — это элементы таксономий category и post_tag. Какой-нибудь плагин интернет-магазина, который вы установили, может создавать таксономию категорий товаров, например product_category.
Код wp_nav_menu(), хуки, хранение данных в БД и вспомогательные функции. Урок #3
При работе с таксономиями эта функция на самом деле невероятно полезная, ее кстати также можно с уверенностью использовать и для обычных рубрик и меток.
Возвращает объект элемента таксономии, содержащий всю инфу о ней. По умолчанию таксономии не имеют метаданных как у постов, поэтому в возвращаемом объекте реально будет содержаться вся информация.
get_term ( $term , $taxonomy , $output = OBJECT, $filter = 'raw' ) |
Получение названия элемента таксономии по его ID
Во всех последующих примерах буду использовать элемент таксономии product_category (тут может быть любая ваш таксономия, либо вовсе — рубрики или метки) с ID 555 (опять-таки, скорее всего вы будете передавать ID в функцию не напрямую, а через переменную и другие функции, в данном случае это просто для примера).
$term = get_term ( 555 , 'product_category' ) ; $term_name = $term -> name ; // получаем название конкретной категории товаров (в данном случае) |
Выводим описание элемента таксономии, заданное в админке
Вообще, тут уже есть отдельная функция для вывода описания term_description() , но для простоты кода, можно сразу вытащить всё это добро из объекта (если вы уже воспользовались функцией get_term() и объект имеется у вас на руках).
$term = get_term ( 555 , 'product_category' ) ; echo "<h1> {$term->name} </h1>" ; echo "<p> {$term->description} </p>" ; |
Выводим ссылку на страницу категории (элемента таксономии)
Как ни странно, в возвращаемом объекте содержится всё, кроме ссылки на страницу с архивами рубрики. Конечно, там есть ярлык, однако его недостаточно для правильного построения ссылки, к счастью есть отличная функция, которая позволяет выводить нормальную ссылку вне зависимости от настроек постоянных ссылок и прочей ерунды — get_term_link() .
В принципе все примеры там уже приведены и всё же вот ещё один:
$term = get_term ( 555 , 'product_category' ) ; echo '<a href="' . get_tem_link ( $term ) . '">' . $term -> name . '</a>' ; |
У функции get_term_link() есть некоторые свои особенности, но в двух словах — в качестве параметра лучше всего передавать весь объект и не париться.
Все остальные параметры возвращаемого объекта уже перечислены в этом посту (ссылка с якорем — сразу перекинет на параметры).
Получение результата в виде ассоциативного массива
Тут на самом деле всё просто, возьмем второй пример например и переделаем его:
$term = get_term ( 555 , 'product_category' , ARRAY_A ); echo "<h1> {$term['name']} </h1>" ; echo "<p> {$term['description']} </p>" ; |
Результат в виде нумерованного массива
Этот вариант лично мне кажется мягко говоря не удобным, но всё же покажу и его. Опять тот же самый пример:
$term = get_term ( 555 , 'product_category' , ARRAY_N ); echo "<h1> {$term[1]} </h1>" ; // название echo "<p> {$term[7]} </p>" ; // описание |
Как узнать необходимые индексы? Ну, можно взглянуть на массив через PHP-функцию print_r():