Get_the_terms - display all post types Get_the_terms - display all post types wordpress wordpress

Get_the_terms - display all post types


Assuming we have custom post type called portfolio and custom taxonomy called portfolio_category

<?php $post_type = 'portfolio';$post_taxonomy = 'portfolio_category';//First get all terms of portfolio_category.$terms = get_terms( $post_taxonomy );$portfolio = new WP_Query('post_type='.$post_type.'&post_per_page=-1'); ?>// First we loop our porfolio_category to show all categories as filter.<ul id="filters" class="whitetext whitelink myeluft">    <li><a href="#" data-filter="*" class="selected">All</a></li>    <?php foreach($terms as $term) : ?>         <li><a href='#' data-filter='.<?php echo $term->slug ?>'><?php echo $term->name ?></a></li>    <?php endforeach; ?></ul><?php if ( $portfolio->have_posts() ) : ?>                <div id="isotope-list">                    <?php while ( $portfolio->have_posts() ) : $portfolio->the_post();// Get current post terms.                        $item_terms = wp_get_post_terms( get_the_ID(), $post_taxonomy, $args );                        $classes = '';                        // Append classes to use with each item.                        foreach($item_terms as $item_term ){                            $classes .= $item_term->slug.' ';                        }                        ?>                        <div class="<?php echo $classes; ?> item col-md-3">                            <h3><?php the_title(); ?></h3>                            <?php if ( has_post_thumbnail() ) {                                the_post_thumbnail();                            } ?>                        </div> <!-- end item -->                    <?php endwhile;  ?>                </div> <!-- end isotope-list -->            <?php endif; ?>


The problem has been solved.

I finally used the following code:

<ul id="filters" class="whitetext whitelink myeluft">         <a href="#" data-filter="*" class="selected"><li class="smoothtrans">Alle</li></a>         <a href='#' data-filter='.foto'><li class="smoothtrans">Foto</li></a>         <a href='#' data-filter='.video'><li class="smoothtrans">Video</li></a>         <a href='#' data-filter='.web'><li class="smoothtrans">Web</li></a></ul><?php$terms = get_terms( $post_taxonomy );$args = array(    'post_type' => 'any',    'posts_per_page' => 6,    'post_taxonomy' => 'any',);$the_query = new WP_Query($args); // Loop post_type?><?php if ( $the_query->have_posts() ) : ?>    <div id="isotope-list">        <?php while ( $the_query->have_posts() ) : $the_query->the_post();         $termsArray = get_the_terms( $post->ID, "category");  //Get the terms for this particular item        $termsString = ""; //initialize the string that will contain the terms            foreach ( $termsArray as $term ) { // for each term                 $termsString .= $term->slug.' '; //create a string that has all the slugs             }        ?>         <div class="<?php echo $termsString; ?> item col-md-4">             <ul class="grid cs-style-3">                <li>                    <figure>                        <?php // 'item' is used as an identifier (see Setp 5, line 6) ?>                        <?php if ( has_post_thumbnail() ) {                               the_post_thumbnail();                        } ?>                        <figcaption class="lefttext">                            <h3><?php the_title(); ?></h3>                            <span class="offgrey"><?php echo(types_render_field( "produkt", array( 'raw' => true) )); ?> / <?php echo(types_render_field( "produsert", array( 'raw' => true) )); ?></span>                            <a href="<?php the_permalink() ?>" rel="bookmark" class="smoothtrans">Se prosjekt</a>                        </figcaption>                    </figure>                </li>            </ul>                     </div> <!-- end item -->        <?php endwhile;  ?>    </div> <!-- end isotope-list -->    <script src="<?php bloginfo('stylesheet_directory'); ?>/js/toucheffects.js"></script><?php endif; ?>

There wasn't that many changes I had to do, but there were a few.

Thanks for everyone who commented and came with working ideas.

Note that there are some bugs in the code I haven't fixed up yet.


The any argument is for post_status , I don't think it is accepted for post_type ('post_status' => 'any')(actually, it wasn't correctly implemented in some versions)

You can give post_type an array with some types instead:

'post_type' => array('post','page','event')