get_term_field()

Возвращает значение одного из полей термина или, иными словами, одно из свойств объекта 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>

Источник: Блог Миши Рудрастых

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

Путешествует по миру и рассказывает всем о WordPress лично, у себя в блогах и на курсах в Санкт-Петербурге. Умеет просто объяснять сложные вещи, делает это красиво. Организовывает неплохие WordCamp's, но совсем не умеет слушать чужие доклады.

Добавить комментарий

%d такие блоггеры, как: