WordPress在wordpress循环中回显自定义帖子类型的分类

时间:2017-10-16 09:39:10

标签: php wordpress

我创建了自定义帖子类型product,对于此CPT,我还创建了名称为products_types的分类法。

现在,在我所有products的概述页面上,我想回应一下产品的产品类型。但我一直在bool(false)

我的代码:

<div class="row">
        <?php
        $loop = new WP_Query( array( 'post_type' => 'product') );
        if ( $loop->have_posts() ) :
            while ( $loop->have_posts() ) : $loop->the_post();
                ?>

                <div class="col-md-4 col-lg-3 work">
                    <div class="category">
                        <?php
                        $category = get_the_terms('product', 'products_types');
                        var_dump($category);
                        echo $category;
                        ?>
                    </div>
                    <a href="<?php the_permalink() ?>" class="work-box"> <img src="<?= get_field('image'); ?>" alt="">
                        <div class="overlay">
                            <div class="overlay-caption">
                                <p><?php echo the_title() ?></p>
                            </div>
                        </div>
                    </a>
                </div>

                <?php
            endwhile;
        endif;
        wp_reset_postdata();
        ?>
</div>

任何人都可以帮助我吗?

2 个答案:

答案 0 :(得分:1)

您需要在get_the_terms()的第一个参数中传递帖子ID或对象。使用返回帖子ID的get_the_ID()

示例:

foreach (get_the_terms(get_the_ID(), 'products_types') as $cat) {
   echo $cat->name;
}

答案 1 :(得分:0)

如何在WordPress循环中打印自定义帖子类型的分类术语?

<div class="row">
        <?php
        $loop = new WP_Query( array( 'post_type' => 'product') );
        if ( $loop->have_posts() ) :
            while ( $loop->have_posts() ) : $loop->the_post();
                ?>

                <div class="col-md-4 col-lg-3 work">
                    <div class="category">
                        <?php
                        $terms = get_the_terms( get_the_ID(), 'products_types' );

                        if ( $terms && ! is_wp_error( $terms ) ) : 

                            $category_links = array();

                            foreach ( $terms as $term ) {
                                $category_links[] = $term->name;
                            }

                            $categories = join( ", ", $category_links );
                            ?>
                            <?php printf( esc_html( $categories ) ); ?>
                        <?php endif; ?>
                    </div>
                    <a href="<?php the_permalink() ?>" class="work-box"> <img src="<?= get_field('image'); ?>" alt="">
                        <div class="overlay">
                            <div class="overlay-caption">
                                <p><?php echo the_title() ?></p>
                            </div>
                        </div>
                    </a>
                </div>

                <?php
            endwhile;
        endif;
        wp_reset_postdata();
        ?>
</div>