get_terms для post->id

7 февр. 2012 г., 19:27:50
Просмотры: 24.4K
Голосов: 2

Мне нужен способ использовать get_terms так, чтобы получать только таксономии текущей страницы. Например, http://sitename.com/genre/hip_hop должен получать только те таксономии, которые также имеют прикрепленный жанр хип-хоп.

wp_get_object_terms почти работает для меня, но не выполняет цикл так, как это делает get_terms.

Вот что у меня есть сейчас

<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post();
$cam_brands = get_the_terms( $post->ID, 'sub_genre' );?>
<?php foreach( $cam_brands as $brand ) : ?>
<h3 class="genre-title"> <?php echo $brand->name; ?> </h3>

<?php $wpq = array( 'post_type' => 'track', 'taxonomy' => 'sub_genre', 'term' => $brand->slug, 'post_status' => 'publish','posts_per_page' => -1, 'caller_get_posts'=> 1 );
$brand_posts = new WP_Query ($wpq);?>
<ul>
<?php foreach( $brand_posts->posts as $post ) : ?>
<li> <?php echo $post->post_title; ?> <a class="sc-player" href="<?php echo get('soundcloud_link'); ?>">трек</a> </li>
<?php endforeach ?>
</ul>
<?php endforeach ?>
<?php endwhile; ?>
<?php endif; ?>
0
Все ответы на вопрос 2
0

Я думаю, вам нужно использовать функцию get_the_terms, которая позволяет получить термины, прикреплённые к записи, указав её ID и таксономию.

7 февр. 2012 г. 19:33:25
0
-1

Возможно, вам стоит заменить внешний цикл foreach на обычный оператор for. Я сталкивался с проблемами подсчёта итераций при использовании foreach внутри другого foreach (вложенные операторы foreach). Это может влиять на вывод вашего кода. PHP документировал эту проблему на своём сайте.

26 июл. 2012 г. 13:25:46