В настоящее время я отображаю пользовательский термин таксономии для своего поста на странице single-resources.php. Однако мне нужно, чтобы он ссылался на страницу категории таксономии, а не на ссылку этой страницы.
Вот что у меня сейчас есть:
<?php
$term_list = wp_get_post_terms($post->ID, 'resourcecategory', array("fields" => "all"));
foreach($term_list as $term_single) {
echo '<a class="icon-hv-link" href="' . esc_url( $term_link ) . '"><i class="icon-left-open-big"></i><span>' . $term_single->name . '</span></a>';
}
?>
Ранее я делал это, что работает, однако отображает каждый термин таксономии, а не тот, который специфичен для поста, поэтому он не работает 🙁
<?php $terms = get_terms( 'resourcecategory' );
if ( ! empty( $terms ) && ! is_wp_error( $terms ) ){
foreach ( $terms as $term ) {
echo '<a class="icon-hv-link" href="' . esc_url( $term_link ) . '"><i class="icon-left-open-big"></i><span>' . $term->name . '</span></a>';
}
}?>
У кого-нибудь есть идеи как-нибудь объединить эти два?
Для всех, у кого была проблема с этим, мне удалось добиться того, что я хотел, с помощью следующего кода:
<?php
$terms = get_the_terms( $post->ID, 'resourcecategory');
foreach($terms as $term) {
echo '<a class="icon-hv-link" href="' . get_term_link($term) . '"><i class="icon-left-open-big"></i><span>' . $term->name . '</span></a>';
}
?>
Вам нужно использовать get_the_terms
вместо get_terms
, Как уже упоминалось в комментариях, не используйте wp_get_post_terms
так как это вызывает ненужные обращения к базе данных
Других решений пока нет …