Возвращает значение одного из полей термина или, иными словами, одно из свойств объекта WP_Term. Значения очищаются функцией sanitize_term_field() в зависимости от контекста использования.
Читайте подробнее про очистку в этом уроке.
Возвращает объект класса WP_Error, если во второй параметр функции передано пустое значение, либо null
, если указанного термина или указанного поля у термина не существует.
get_term_field( $field, $term, $taxonomy = '', $context = 'display' )
Параметры
- $field
- (строка) Название поля/свойства. Может принимать значения:
term_id
– ID рубрики/метки/элемента таксономииname
– названиеslug
– ярлыкterm_group
– значение term_group из базы данных (особого применения пока что нет, в основном — в плагинах)term_taxonomy_id
– ID таксономииtaxonomy
– название таксономииdescription
– описание элемента (можно заполнить в админке при создании и редактировании)parent
– ID родительского элементаcount
– количество записейorder
– номер по порядку при ручной сортировке
- $term
- (целое|WP_Term) ID или объект элемента таксономии.
- $taxonomy
- (строка) Название таксономии, которое можно не указывать, если в предыдущем параметре был передан объект.
- $context
- (строка) Контекст использования. Подробнее о контекстах и их очистке здесь.
Примеры
Начнём с примера, когда функция вернёт ошибку WP_Error. На её наличие мы кстати проверяем функцией is_wp_error().
// допустим, что где-то в коде у нас $term_id получился пустым $term_id = null; $description = get_term_field( 'description', $term_id, 'category' ); if( is_wp_error( $description ) ) { echo $description->get_error_message(); // выведет "Пустой элемент" } else { echo $description; }
Хорошо, допустим, что $term_id
не пустой:
$term_id = 14; $description = get_term_field( 'description', $term_id, 'category' ); // получаем поле // если мы не знаем, существует ли $term_id или нет, то можем ещё и на ошибку проверить // if( $description && ! is_wp_error( $description ) ) if( $description ) { echo $description; } else { echo 'Либо термина не существует, либо описания у него не существует.'; }
А теперь добрались до очистки. Предположим, что в описании рубрики у нас есть какие-то HTML-теги, что в принципе вполне нормально. Что же выведет функция?
// допустим, что описание такое: // Это какое-то описание <strong>рубрики</strong> // выводим его сразу echo get_term_field( 'description', 14, 'category', 'edit' ); // Это какое-то описание <strong>рубрики</strong>
Источник: Блог Миши Рудрастых