在循环中显示自定义帖子类型(特别是该帖子)的WordPress类别

时间:2017-03-08 19:49:56

标签: php wordpress loops custom-post-type

我正在使用Javascript过滤器,根据类别显示和隐藏自定义帖子类型的列表(循环)。

我试图将类别slug添加为类。但我只想显示分配给特定循环项的类别。每个项目可以有多个类别。

我已经这样做了,但它会在每个循环中转储所有类别,而不是专门针对该循环项的类别。

<?php
    $pageID = get_the_ID();
    $loop = new WP_Query(array('post_type' => 'casestudies', 'posts_per_page' => -1));
    $taxonomy = 'custom_casestudies';
    $terms = get_terms($taxonomy);
    while ($loop->have_posts()) : $loop->the_post();
?>

<div class="block-wrap mix <?php foreach ($terms as $term) echo  ' ' . $term->slug; ?>">
    // loop content
</div>

<?php endwhile; wp_reset_postdata(); ?>

2 个答案:

答案 0 :(得分:1)

get_terms返回给定分类中的所有术语。在这种情况下,您应该使用wp_get_post_terms,它返回给定帖子的术语列表。 documentation详细介绍。

答案 1 :(得分:1)

如果这对其他人有帮助,并且感谢Matt(他的回答)这是有效的。

<?php
    global $post;
    $loop = new WP_Query(array('post_type' => 'casestudies', 'posts_per_page' => -1));
    while ($loop->have_posts()) : $loop->the_post();
    $terms = wp_get_post_terms($post->ID, 'custom_casestudies');
?>
<div class="block-wrap mix<?php foreach ($terms as $term) echo  ' ' . $term->slug ?>">
    // content
</div>

<?php endwhile; wp_reset_postdata(); ?>

条款必须在while循环之后。