Функция возвращает объект (или массив), содержащий всю информацию о конкретном элементе определенной таксономии.
На самом деле это просто «более расширеная версия» функции get_term(). Там я описал всё очень подробно, поэтому, если тут что-то будет непонятно, советую почитать.
get_term_by( $field, $value, $taxonomy, $output = OBJECT, $filter = 'raw' )
- $field
- (строка) определяет то, что будет содержаться в следующем параметре:
slug
— ярлык,name
— название,id
— ID (используется по умолчанию, однако всё же параметр рекомендуется указывать).
- $value
- (строка|целое число) ID, ярлык или название элемента таксономии, который нужно получить (обратите внимание, что если передаете в качестве параметра название элемента, автоматическая замена HTML-символов сущностями не производится, вы должны делать это сами).
- $taxonomy
- (строка) название самой таксономии.
- $output
- (строка) формат возвращаемых данных, может принимать значения:
OBJECT
,ARRAY_A
,ARRAY_N
. - $filter
- (строка) фильтр WordPress (по умолчанию — не применяется).
Примеры
Полный список параметров возвращаемого объекта можно посмотреть тут. Также можно например вывести объект через php-функцию print_r()
.
Большинство примеров приведено именно для таксономии рубрик (т.е. category
), но все они работают и для других таксономий.
Как узнать название элемента таксономии, зная его ID
В последующих примерах буду использовать только два варианта таксономий — рубрики category
и какая-то вообще левая таксономия, допустим, это категории товаров в вашем интернет магазине на WordPress product_category
.
Итак, значит в этом примере получаем название конкретной категории товаров с ID = 54:
$term = get_term_by( 'id', 54, 'product_category'); $term_name = $term->name;
Как получить ID родительской рубрики
Тут может быть три варианта. Вариант первый — знаем только ID дочерней рубрики:
$term = get_term_by( 'id', 54, 'category'); $parent_term_id = $term->parent;
Вариант два — известно название дочерней рубрики:
$term = get_term_by( 'name', 'WordPress', 'category'); // допустим, что название рубрики - WordPress $parent_term_id = $term->parent;
Известен ярлык:
$term = get_term_by( 'slug', 'wordpress-2', 'category'); $parent_term_id = $term->parent;
Обратите внимание на очевидное — примеры на получение родительского элемента сгодятся только для таксономий с иерархией.
Как узнать ID рубрики по названию
$term = get_term_by( 'name', 'WordPress', 'category'); $category_id = $term->term_id;
Абсолютным аналогом является функция get_cat_ID(), она как раз и работает на основе get_term_by()
.
Получение объекта рубрики по ее ярлыку
Еще одна функция, частью которой является get_term_by()
— это get_category_by_slug(). Код ниже и есть аналог действия этой функции:
$category = get_term_by( 'slug', 'wordpress-2', 'category'); // понятно, что wordpress-2 это ярлык рубрики, объект которой нужно получить // остальные параметры остаются без изменений
Определение общего количества постов в рубрике
$category = get_term_by( 'id', 54, 'category'); // использую ID для получения объекта $post_count = $category->count;
На самом деле я тут написал очень много лишних примеров, все их и многие другие можно легко вывести самому, зная параметры возвращаемого объекта.