Функция has_term_meta()
используется для получения всех метаданных, связанных с указанным термином (элементом таксономии) по его ID. Она возвращает метаданные, включая идентификаторы метаполей, ключи метаданных и их значения.
has_term_meta( int $term_id ): array|false
Описание
has_term_meta()
выполняет прямой запрос в базу данных и возвращает массив всех метаданных для указанного термина. Это полезно, когда необходимо получить все метаполя, связанные с термином, для дальнейшего использования или анализа.
Функция не использует кэширование, поэтому каждый раз делает новый запрос к базе данных, что следует учитывать при её частом вызове.
Параметры
- $term_id (int) (обязательный): ID термина (элемента таксономии), для которого нужно получить метаданные.
Возвращаемое значение
- array: Массив с метаданными, где каждая запись представляет собой метаполе термина, содержащее следующие данные:
meta_id
— ID метаполя;term_id
— ID термина;meta_key
— ключ метаполя;meta_value
— значение метаполя.
- false: Возвращается, если таблица метаданных для таксономий не установлена.
Пример 1: Получение всех метаданных термина
Предположим, вам нужно получить все метаданные для термина с ID 123
. Используем функцию has_term_meta()
и выведем результат.
$term_meta = has_term_meta(123);
if ( $term_meta ) {
print_r( $term_meta );
} else {
echo 'Метаданные для этого термина отсутствуют.';
}
Ожидаемый вывод:
Array
(
[0] => Array
(
[meta_key] => 'color_preference'
[meta_value] => 'blue'
[meta_id] => 105
[term_id] => 42
)
[1] => Array
(
[meta_key] => 'display_order'
[meta_value] => '5'
[meta_id] => 106
[term_id] => 42
)
[2] => Array
(
[meta_key] => 'featured'
[meta_value] => '1'
[meta_id] => 107
[term_id] => 42
)
)
Пример 2: Проверка наличия метаданных
Иногда нужно просто проверить, есть ли метаданные у термина, не вдаваясь в детали. Для этого можно использовать проверку на наличие результата:
$term_id = 45;
if ( has_term_meta( $term_id ) ) {
echo "У термина с ID $term_id есть метаданные.";
} else {
echo "У термина с ID $term_id нет метаданных.";
}
Пример 3: Получение конкретных метаданных
Хотя has_term_meta()
возвращает все метаданные термина, вы можете использовать их для получения конкретной информации. Например, для получения значения метаполя views
у термина:
$term_meta = has_term_meta(33);
foreach ( $term_meta as $meta ) {
if ( $meta['meta_key'] === 'views' ) {
echo 'Просмотры термина: ' . $meta['meta_value'];
break;
}
}
Заключение
Функция has_term_meta()
является полезным инструментом для работы с метаданными терминов в WordPress. Она позволяет легко получить все связанные с термином метаполя, которые можно использовать для построения сложных функций и логики на вашем сайте.