get_term_by() — возвращает элемент таксономии (в виде объекта или массива) по его ID, названию или ярлыку

Функция возвращает объект (или массив), содержащий всю информацию о конкретном элементе определенной таксономии.

На самом деле это просто «более расширеная версия» функции 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;

На самом деле я тут написал очень много лишних примеров, все их и многие другие можно легко вывести самому, зная параметры возвращаемого объекта.

Миша

Впервые познакомился с WordPress в 2009 году. Организатор и спикер на конференциях WordCamp. Преподаватель в школе Нетология.

Пишите, если нужна помощь с сайтом или разработка с нуля.

Чтобы оставить комментарий, пожалуйста, зарегистрируйтесь или войдите.

Миша Рудрастых и WordPress

Полезности из мира WordPress и жизни студии.

Мой телеграм-канал