Как отобразить более 1 термина или ссылки настраиваемой таксономии в настраиваемом типе публикации?

Я создал специальную таксономию под названием «тема», и в таксономии есть три термина. Я хочу показать ВСЕ ссылки на термины, относящиеся к текущему сообщению. В настоящее время я могу получить свой код только для отображения ОДНОГО из терминов таксономии сообщений ...

Я хотел бы, чтобы термины ссылки отображались в моем настраиваемом файле content.php ("content-home.php"), который я использую для отображения отрывков из моих настраиваемых сообщений на моей домашней странице.

В настоящее время у меня есть этот код, помещенный в мой пользовательский файл content.php, и он действительно работает нормально, но я могу заставить его отображать только ОДИН термин:

<?php

    $terms = get_the_terms( $post->ID, 'tema');

    foreach($terms as $term) {
           echo '<a href="' . get_term_link($term) . '"><span>' . $term->name . '</span></a>';
    }
?>

Может ли кто-нибудь показать мне, как я могу показать ВСЕ ссылки на термины таксономии сообщений?


person MariaThiim    schedule 03.08.2017    source источник
comment
вы print_r ($ terms); сколько вы получаете, мама?   -  person Mittul At TechnoBrave    schedule 03.08.2017


Ответы (2)


В Кодексе WordPress вы можете найти:

Для get_the_terms: «Получить термины таксономии, прикрепленные к сообщению». http://codex.wordpress.org/Function_Reference/get_the_terms

Для get_terms: «Получить термины в таксономии или списке таксономий». http://codex.wordpress.org/Function_Reference/get_terms

Таким образом, get_the_terms() получит термины (например, категории), прикрепленные к сообщению, тогда как get_terms() получит термины в таксономии (например, категории в таксономии категорий). Например, get_terms( 'category' ) вернет все категории, которые вы добавили на свой сайт WordPress.

Вы должны использовать что-то вроде этого:

<?php                   
  $terms= get_terms(array('taxonomy'=>'tema'));
  foreach($terms as $term){
      echo '<a href="' . get_term_link($term) . '"><span>' . $term->name . '</span></a>';
  }
?>
person Ankit Singh    schedule 03.08.2017
comment
Потрясающе (у) .. супер штука. - person Mittul At TechnoBrave; 03.08.2017
comment
Спасибо, но потом он выплевывает все три термина во всех моих сообщениях. Мне нужно, чтобы он отображал только те условия, которые относятся к конкретному сообщению. Вы можете помочь? :-) - person MariaThiim; 03.08.2017
comment
Тогда ваш код должен работать. Используйте свой код под <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); /*Your code here*/ endwhile; endif; ?> - person Ankit Singh; 03.08.2017
comment
Но я не могу поместить цикл в свой файл содержимого, если он начинается с ‹article id = post -‹? Php the_ID (); ? ›‹? Php post_class (); ?>> могу я? Когда я пытаюсь, он запускает цикл до тех пор, пока не истечет время ожидания, и страница не станет пустой. - person MariaThiim; 03.08.2017

Попробуйте функцию перехвата ниже, чтобы получить список таксономии определенного идентификатора сообщения,

//Returns All Term Items for "my_taxonomy"
$term_list = wp_get_post_terms($post->ID, 'my_taxonomy', array("fields" => "all"));
print_r($term_list);

* my_taxonomy - заменить вашу таксономию

https://codex.wordpress.org/Function_Reference/wp_get_post_terms

person Gnanasekaran Loganathan    schedule 03.08.2017
comment
Спасибо GNANA, но затем он печатает всю информацию о термине таксономии, а это не то, что я хочу ... Он по-прежнему не показывает термины, которые используются в конкретном сообщении ... - person MariaThiim; 03.08.2017
comment
вам нужна эта таксономия используемый список сообщений? - person Gnanasekaran Loganathan; 03.08.2017
comment
Если да, значит, попробуйте этот wordpress.stackexchange.com/questions/66219/ - person Gnanasekaran Loganathan; 03.08.2017
comment
Нет, наоборот: я хочу показать термины таксономии, относящиеся к данному сообщению, и они должны быть внутри конкретного сообщения. Проблема в том, что я могу заставить его показать только ОДИН из связанных терминов. У меня есть настраиваемый тип сообщения под названием «новости», и для этого CPT я создал настраиваемую таксономию под названием «тема». «Тема» состоит из трех терминов: реабилитация, городское и временное задержание. Если я назначу два термина одному и тому же посту, мой код покажет только один из терминов. Я надеюсь это имеет смысл? - person MariaThiim; 03.08.2017