循环遍历wp_get_post_terms并回显分类名称

时间:2018-06-17 13:47:57

标签: php wordpress custom-post-type custom-taxonomy

我有一个名为“项目”的自定义帖子类型和8个CPT类别列表。在我网站的主页上,我想调用最新的帖子并回显项目名称,摘录和类别。我有名称和摘录工作,但我无法弄清楚如何引入自定义分类法。

我知道我可以使用wp_get_post_terms()来获取分配给特定帖子的分类术语,但这会返回一个术语对象数组。我不知道如何循环返回并每次回显$ term->名称。

<?php
$args = array(
    'meta_key'     => 'featured',
    'meta_value'   => '1',
    'post_type' => 'project'
);
$query = new WP_Query( $args );
if ( $query->have_posts() ) {
while ( $query->have_posts() ) {
    $query->the_post();
    $backgroundImg = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), 'full' ); ?>

    <div class="cpt-feature" style="background: url('<?php echo $backgroundImg[0]; ?>') center center no-repeat; background-size: cover;">
    <?php echo get_the_post_thumbnail( $page->ID, 'thumbnail' ); ?>

    <?php
    echo "<div class='cpt-overlay'>";
    echo "<div class='project-information'>";
    // NEED TO INSERT CPT CATEGORY HERE
    echo "<h3>";
        the_title();
    echo "</h3>";
    echo "<p>";
    echo get_field('intro_blurb');
    echo "<p><a href='" . get_permalink() . "'>View Project</a></p>";
    echo "</div>";
    echo "</div>";
    echo "</a>";
}
wp_reset_postdata(); } else { }?>

1 个答案:

答案 0 :(得分:0)

您可以使用简单的foreach循环轻松遍历wp_get_post_terms()的返回值:

curl_easy_setopt( curl, CURLOPT_CAINFO, "cacert.pem" );

但是,如果您只需要一个简单的链接列表,甚至可能不需要这样做,您可以使用get_the_term_list()代替。

另一个注意事项是,您不需要每行一个回音。在这种情况下,最好逃避PHP并使用WP中可用的自回显函数。现在通过处理缩进和格式化来帮助您。以下是{I} $terms = wp_get_post_terms( $post->ID, 'your-taxonomy-here' ); foreach( $terms as $term){ echo $term->name; }

的处理方法
get_the_term_list()

或者如果您不想要链接列表,而是想要使用<?php $args = array( 'meta_key' => 'featured', 'meta_value' => '1', 'post_type' => 'project' ); $query = new WP_Query( $args ); if( $query->have_posts() ){ while( $query->have_posts() ){ $query->the_post(); $backgroundImg = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'full' ); ?> <div class="cpt-feature" style="background: url('<?= $backgroundImg[0]; ?>') center center no-repeat; background-size: cover;"> <?php the_post_thumbnail( $page->ID, 'thumbnail' ); ?> <div class="cpt-overlay"> <div class="project-information"> <?php echo get_the_term_list( $post->ID, 'your-taxonomy-here' ); the_title( '<h3>', '</h3>' ); ?> <p> <?php the_field( 'intro_blurb' ); ?> <a href="<?php the_permalink(); ?>">View Project</a> </p> </div> </div> </div> <?php } wp_reset_postdata(); } ?> ,只需交换功能并添加wp_get_post_terms()

foreach