Функция get_term_field()
в WordPress позволяет извлекать и очищать поля терминов таксономий. Она используется для получения определённых значений, таких как описание, слаг и другие свойства термина. Эта функция упрощает процесс получения и обработки данных о терминах, обеспечивая контекстуальную безопасность.
get_term_field( string $field, int|WP_Term $term, string $taxonomy = '', string $context = 'display' ): string|int|null|WP_Error
Параметры
- $field (обязательный): строка, указывающая поле термина, которое нужно получить (например, ‘description’, ‘slug’).
- $term (обязательный): ID термина (число) или объект
WP_Term
. - $taxonomy (необязательный): название таксономии. По умолчанию — пустая строка.
- $context (необязательный): контекст, в котором будет очищено поле. Возможные значения:
raw
— возвращает значение без изменений.edit
— фильтрует значение черезesc_html()
для описания иesc_attr()
для других полей.db
— для значений, которые нужно записать в базу данных.slug
— для полей, которые должны быть преобразованы в слаг.rss
— для значений, подходящих для RSS.attribute
— фильтрesc_attr()
.js
— фильтрesc_js()
.
'display'
.
Возвращаемое значение
Функция возвращает строку, число, null
или объект WP_Error
. Если $term
не является объектом или если поле $field
не найдено у термина, будет возвращена пустая строка.
Пример 1: Получение описания термина
В этом примере мы получим описание рубрики с ID 123. Если описание отсутствует, отобразим сообщение об этом.
$description = get_term_field('description', 123, 'category');
if (is_wp_error($description)) {
echo 'Описание термина не найдено';
} else {
echo esc_html($description); // Безопасный вывод описания
}
Пример 2: Получение слага термина
В этом примере мы получим слаг термина с ID 123:
$slug = get_term_field('slug', 123, 'category');
if (is_wp_error($slug)) {
echo 'Слаг термина не найден';
} else {
echo esc_html($slug); // Выводим слаг
}
Пример 3: Получение значения в контексте ‘edit’
В этом примере мы получим описание термина, отфильтрованное для безопасного отображения в форме редактирования:
$description = get_term_field('description', 123, 'category', 'edit');
if (is_wp_error($description)) {
echo 'Описание термина не найдено';
} else {
echo esc_html($description); // Выводим безопасное описание
}
Заключение
Функция get_term_field()
является полезным инструментом для получения и обработки полей терминов в WordPress. Она позволяет разработчикам легко извлекать данные о терминах с учетом контекста и обеспечивать безопасность. Используйте её для получения таких значений, как описания и слаги, чтобы улучшить взаимодействие с пользователями и обрабатывать данные с минимальным риском ошибок.