get_term_by()

Извлекает все данные о терминах из базы данных по полю и данным термина
Функция WordPress
INT 2.3.0
WordPress Icon

Описание функции

Функция get_term_by() возвращает все данные о термине из базы данных по указанному полю и значению.

Она позволяет получить информацию о термине по его слагу, названию, ID термина (или ID терминологии) или ID таксономии.

Функция может быть использована для получения объекта WP_Term или массива данных о термине.

Использование

get_term_by( string $field, string|int $value, string $taxonomy = '', string $output = OBJECT, string $filter = 'raw' ): WP_Term|array|false

Этот код возвращает объект WP_Term или массив данных о термине.

Подробные комментарии к коду:

  • $field (обязательный параметр) — поле, по которому будет производиться поиск. Может принимать значения ‘slug’, ‘name’, ‘term_id’ (или ‘id’, ‘ID’) или ‘term_taxonomy_id’.
  • $value (обязательный параметр) — значение, по которому будет производиться поиск термина.
  • $taxonomy (необязательный параметр) — название таксономии. Необязательный, если поле $field равно ‘term_taxonomy_id’. По умолчанию: ».
  • $output (необязательный параметр) — тип возвращаемого значения. Одно из значений OBJECT, ARRAY_A или ARRAY_N, соответствующих объекту WP_Term, ассоциативному массиву или числовому массиву соответственно. По умолчанию: OBJECT.
  • $filter (необязательный параметр) — способ санитизации полей термина. По умолчанию: ‘raw’.

Функция возвращает объект WP_Term или массив данных о термине в случае успеха, в зависимости от значения параметра $output. Возвращает false, если таксономия не существует или термин не найден.

<?php
// Получаем термин по его названию
$term = get_term_by( 'name', 'Термин', 'taxonomy_name' );
if ( $term ) {
  // Термин найден, выводим его название
  echo $term->name;
} else {
  // Термин не найден
  echo 'Термин не найден';
}
?>

В этом примере мы используем функцию get_term_by() для получения термина по его названию в указанной таксономии.

Если термин найден, мы выводим его название. В противном случае выводим сообщение о том, что термин не найден.

Примеры использования

Получение термина по слагу


$term = get_term_by('slug', 'my-term-slug', 'my-taxonomy');
if ($term) {
    // Термин найден, выполняем нужные действия
    echo 'ID термина: ' . $term->term_id;
} else {
    // Термин не найден
    echo 'Термин не найден';
}

В данном примере мы ищем термин по его слагу ‘my-term-slug’ в таксономии ‘my-taxonomy’. Если термин найден, то выводим его ID, иначе выводим сообщение о том, что термин не найден.

Поиск термина по имени


$term = get_term_by('name', 'My Term', 'my-taxonomy');
if ($term) {
    // Термин найден, выполняем нужные действия
    echo 'ID термина: ' . $term->term_id;
} else {
    // Термин не найден
    echo 'Термин не найден';
}

В данном примере мы ищем термин по его имени ‘My Term’ в таксономии ‘my-taxonomy’. Если термин найден, то выводим его ID, иначе выводим сообщение о том, что термин не найден.

Получение термина по ID


$term = get_term_by('term_id', 42, 'my-taxonomy');
if ($term) {
    // Термин найден, выполняем нужные действия
    echo 'Название термина: ' . $term->name;
} else {
    // Термин не найден
    echo 'Термин не найден';
}

В данном примере мы ищем термин по его ID 42 в таксономии ‘my-taxonomy’. Если термин найден, то выводим его название, иначе выводим сообщение о том, что термин не найден.

Получение термина по ID таксономии


$term = get_term_by('term_taxonomy_id', 123, 'my-taxonomy');
if ($term) {
    // Термин найден, выполняем нужные действия
    echo 'Slug термина: ' . $term->slug;
} else {
    // Термин не найден
    echo 'Термин не найден';
}

В данном примере мы ищем термин по его ID таксономии 123 в любой таксономии. Если термин найден, то выводим его слаг, иначе выводим сообщение о том, что термин не найден.

Вопросы и ответы

Как получить термин по его слагу?

Функция get_term_by() позволяет получить все данные о термине из базы данных по его слагу. Для этого необходимо передать в функцию следующие параметры:

  • $field — строка, обязательный параметр, указывающий на поле, по которому будет производиться поиск. В данном случае мы используем значение «slug».
  • $value — строка или целое число, обязательный параметр, содержащий значение слага, по которому будет производиться поиск.
  • $taxonomy — строка, необязательный параметр, указывающий на название таксономии, в которой будет производиться поиск. Если этот параметр не указан, поиск будет производиться во всех таксономиях.
  • $output — строка, необязательный параметр, определяющий тип возвращаемых данных. В данном случае мы используем значение «OBJECT», которое возвращает объект WP_Term.
  • $filter — строка, необязательный параметр, определяющий способ фильтрации полей термина. В данном случае мы используем значение «raw», которое означает отсутствие фильтрации.

В итоге, функция get_term_by() вернет объект WP_Term, содержащий все данные о найденном термине, если поиск успешен. Если такая таксономия не существует или термин не найден, функция вернет значение false.


$term = get_term_by( 'slug', 'my-term-slug', 'my-taxonomy' );
if ( $term ) {
  // Выводим название термина
  echo $term->name;
}

Как получить термин по его названию?

Для получения термина по его названию, необходимо использовать функцию get_term_by() с параметром $field равным «name». Остальные параметры остаются такими же:


$term = get_term_by( 'name', 'My Term Name', 'my-taxonomy' );
if ( $term ) {
  // Выводим слаг термина
  echo $term->slug;
}

Как получить термин по его ID?

Если нам известен ID термина, мы можем использовать функцию get_term_by() с параметром $field равным «term_id». Остальные параметры остаются такими же:


$term = get_term_by( 'term_id', 42, 'my-taxonomy' );
if ( $term ) {
  // Выводим описание термина
  echo $term->description;
}

Как получить термин по его ID таксономии?

Функция get_term_by() позволяет получить данные термина из базы данных по его ID таксономии. Для этого нужно передать в функцию параметры 'term_id' и значение ID термина.

$term = get_term_by( 'term_id', 42, 'category' );

В данном примере мы получаем термин с ID равным 42 из таксономии ‘category’.

Как получить все данные термина в виде объекта WP_Term?

Если нам нужно получить все данные термина в виде объекта WP_Term, мы можем использовать функцию get_term_by() с параметром 'OBJECT'.

$term = get_term_by( 'slug', 'term-slug', 'taxonomy', 'OBJECT' );

В данном примере мы получаем все данные термина с указанным слагом из указанной таксономии в виде объекта WP_Term.

Как получить все данные термина в виде ассоциативного массива?

Если нам нужно получить все данные термина в виде ассоциативного массива, мы можем использовать функцию get_term_by() с параметром 'ARRAY_A'.

$term = get_term_by( 'name', 'Term Name', 'taxonomy', 'ARRAY_A' );

В данном примере мы получаем все данные термина с указанным именем из указанной таксономии в виде ассоциативного массива.

Как получить все данные термина в виде числового массива?

Функция get_term_by() позволяет получить все данные термина из базы данных по указанному полю и значению. Для этого необходимо передать в функцию следующие параметры:

  • $field — строка, обязательный параметр, указывающий поле, по которому будет производиться поиск. Допустимые значения: ‘slug’, ‘name’, ‘term_id’ (или ‘id’, ‘ID’) или ‘term_taxonomy_id’.
  • $value — строка или целое число, обязательный параметр, содержащий значение, по которому будет производиться поиск.
  • $taxonomy — строка, необязательный параметр, указывающий название таксономии. Параметр необходим только в случае, если поле $field равно ‘term_taxonomy_id’.
  • $output — строка, необязательный параметр, определяющий тип возвращаемого результата. Допустимые значения: OBJECT (объект WP_Term), ARRAY_A (ассоциативный массив) или ARRAY_N (числовой массив). По умолчанию используется OBJECT.
  • $filter — строка, необязательный параметр, определяющий способ фильтрации полей термина. По умолчанию используется ‘raw’.

Пример использования функции get_term_by() для получения всех данных термина в виде числового массива:


$term = get_term_by( 'slug', 'my-term', 'my-taxonomy', ARRAY_N );

В данном примере функция get_term_by() будет искать термин с полем ‘slug’, равным ‘my-term’ в таксономии ‘my-taxonomy’. Результат будет представлен в виде числового массива.

Что вернется, если таксономия не существует?

Если указанная таксономия не существует, функция get_term_by() вернет значение false.

Пример использования функции get_term_by() с несуществующей таксономией:


$term = get_term_by( 'slug', 'my-term', 'non-existent-taxonomy' );

В данном примере функция get_term_by() будет искать термин с полем ‘slug’, равным ‘my-term’ в несуществующей таксономии ‘non-existent-taxonomy’. Результатом будет значение false.

Что вернется, если термин не найден?

Если указанный термин не найден, функция get_term_by() также вернет значение false.

Пример использования функции get_term_by() с несуществующим термином:


$term = get_term_by( 'slug', 'non-existent-term', 'my-taxonomy' );

В данном примере функция get_term_by() будет искать термин с полем ‘slug’, равным ‘non-existent-term’ в таксономии ‘my-taxonomy’. Результатом будет значение false.

Функция get_term_by() позволяет получить все данные термина из базы данных по указанному полю и значению. Она предоставляет гибкую возможность поиска термина в заданной таксономии и возвращает результат в нужном формате. Важно учитывать возможность получения значения false, если таксономия или термин не существуют. При использовании этой функции следует проверять результат на наличие данных перед их дальнейшей обработкой.

Связанные элементы

  • Функция get_term(): Возвращает объект термина по указанному ID.
  • Функция get_terms(): Получает список терминов из базы данных.
  • Функция get_term_children(): Получает дочерние термины для указанного термина.
  • Функция get_term_link(): Возвращает URL ссылку на указанный термин.
  • Функция get_term_meta(): Получает значение метаданных для указанного термина.
  • Хук pre_get_terms: Позволяет изменить аргументы запроса перед получением терминов.
  • Класс WP_Term: Представляет термин и его свойства.
  • Класс WP_Term_Query: Используется для выполнения запросов на получение терминов.
Обсуждение