简体   繁体   中英

WordPress echo taxonomy of custom post type in wordpress loop

I have created a Custom Post Type product and for this CPT I've also created a taxonomy with the name products_types .

Now on my overview page of all the products I would like to echo out the product type that was given to the product. But I keep getting bool(false) .

My code:

<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>

Anyone can help me out here please?

You need to pass the Post ID or object in first parameter of get_the_terms() . Used get_the_ID() which return the post ID.

Example:

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

How to print taxonomy terms of custom post type in WordPress loop?

<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>

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM