Правильное использование get_the_terms()

12 мар. 2016 г., 18:36:40
Просмотры: 28.7K
Голосов: 4

Мне нужно вывести все термины, связанные с записью произвольного типа. В шаблоне записи я написал следующий код:

<?php foreach (get_the_terms(the_ID(), 'taxonomy') as $cat) : ?>
     <?php echo $cat->name; ?>
<?php endforeach; ?>

Цикл работает правильно, но перед списком также выводится id. Например:

37
taxonomy01
taxonomy02
taxonomy03

Что не так?

0
Все ответы на вопрос 2
3
12

the_ID() выводит ID записи. Вам следует использовать get_the_ID(), который возвращает ID записи.

Пример:

foreach (get_the_terms(get_the_ID(), 'taxonomy') as $cat) {
   echo $cat->name;
}

Всегда помните о соглашении об именовании функций WordPress для тегов шаблонов. the означает вывод (print), а get означает возврат значения (return) в большинстве случаев.

12 мар. 2016 г. 18:43:13
Комментарии

Спасибо, я не осознавал разницы.

wav wav
12 мар. 2016 г. 18:51:30

Всегда помни соглашение об именовании шаблонных тегов в WordPress. the означает вывод на экран, get означает возврат значения WordPress не всегда следует этому. Шаблонные теги не всегда используют префиксы the и get

Pieter Goosen Pieter Goosen
12 мар. 2016 г. 20:01:08

Я подумал, что мое утверждение не на 100% верно. Отредактировал :)

Sumit Sumit
12 мар. 2016 г. 20:05:27
0

Также вы можете объявить переменную.

$taxonomy = get_the_terms( get_the_ID(), 'taxonomy' );

foreach ( $taxonomy as $tax ) {
   echo esc_html( $tax->name ); 
}
16 окт. 2020 г. 00:32:51