Intereting Posts
Добавьте текстовый текст Описательного текста в Виджет, чтобы пользователи могли видеть, что они содержат. Изображение с водяным значком, как только оно будет установлено на странице редактирования после публикации Как правильно переписать CPT-Permalinks (включая мета-данные)? Дайте пользователям максимальную загрузочную способность; ограничить количество файлов, которые пользователь может загрузить или ограничить количество файлов на загрузку Сделать пункт меню невыбранным Сортировка персонализированного сообщения с помощью ACF: выбор даты и отображения! Добавление тега в wp_nav_menu JW Player – Как разделить RSS плейлиста в wordpress WordPress Multisite Network и вопросы разработчика Пользовательский тип сообщения с пользовательской таксономией как категория В каких запросах SQL / WordPress потребуется nonce? Есть ли плагин WordPress, который можно отправлять в Google+? Как отправить сообщение в блоге Условно класс нагрузки в разделе комментариев на странице сообщений Правила переписывания NGINX для многозвенных

Получить имя термина без цикла foreach

У меня в настоящее время есть следующее:

<?php $terms = wp_get_post_terms( $post->ID, 'artist-genre'); foreach($terms as $term) : ?> <li> <?php echo $term->name; ?> </li> <?php endforeach;?> 

Просто, чтобы указать имя на странице пользовательского типа сообщений, называемой artwork .

Он работает, но я чувствую, что выполнение цикла foreach для одной вещи немного переборщило.

Есть ли другой способ сделать это по-другому без использования foreach или это лучший способ?

Solutions Collecting From Web of "Получить имя термина без цикла foreach"

Как насчет использования :

 echo get_the_term_list( $post->ID, 'artist-genre', '<li>', ',</li><li>', '</li>' ); 

вместо этого, чтобы сгенерировать список HTML?

Или просто :

 the_terms( $post->ID, 'artist-genre', '<li>', ',</li><li>', '</li>' ); 

это оболочка для get_the_term_list() .

Также обратите внимание, что в вашем фрагменте кода отсутствует is_wp_error() , поскольку wp_get_post_terms() может возвращать объект WP_Error для неизвестной таксономии. Но функция the_terms позаботится об этом и возвращает false в этом случае.

Если вы только после имени термина в своем коде, вы можете добавить

 array( 'fields' => 'names' ) 

Или для PHP 5.4+

 ['fields' => 'names'] 

как третий параметр для wp_get_post_terms . Это просто вернет имена терминов, прикрепленных к сообщению. Затем вы можете получить и отобразить первое имя

 echo $terms[0]]; 

Как уже упоминалось @birgire, вам нужно будет проверить, не возвращаются ли $terms term и что есть фактически возвращенные значения. Несоблюдение этого приведет к ошибке, когда $terms возвратит ошибку возврата пустым списком