query related posts in a custom post type by a custom taxonomy

okay now i found the code that makes it able to use a custom taxonomy to show related posts for a custom post type.

  1. $terms = get_the_terms( $post->ID , ‘product_tags’, ‘string’); is the custom taxonomy in which you should put to query all the tags in your custom post type
  2. ‘post_type’ => ‘products’ is the custom post type in which calls all the custom tags created in the custom taxonomy in which in this case is product_tags

Input this code anywhere inside your loop or query to show all posts within your custom post type. This does not filter your custom post type based on different tags. This shows all the tags within your custom post type, which in this case is products.

//Get array of terms
$terms = get_the_terms( $post->ID , 'product_tags', 'string');
//Pluck out the IDs to get an array of IDS
$term_ids = wp_list_pluck($terms,'term_id');

//Query posts with tax_query. Choose in 'IN' if want to query posts with any of the terms
//Chose 'AND' if you want to query for posts with all terms
  $second_query = new WP_Query( array(
      'post_type' => 'products',
      'tax_query' => array(
                    array(
                        'taxonomy' => 'product_tags',
                        'field' => 'id',
                        'terms' => $term_ids,
                        'operator'=> 'IN' //Or 'AND' or 'NOT IN'
                     )),
      'posts_per_page' => 3,
      'ignore_sticky_posts' => 1,
      'orderby' => 'rand',
      'post__not_in'=>array($post->ID)
   ) );

//Loop through posts and display...
    if($second_query->have_posts()) {
     while ($second_query->have_posts() ) : $second_query->the_post(); ?>
      <div class="single_related">
           <?php if (has_post_thumbnail()) { ?>
            <a href="https://wordpress.stackexchange.com/questions/75112/<?php the_permalink() ?>" title="<?php the_title(); ?>"> <?php the_post_thumbnail( 'related_sm', array('alt' => get_the_title()) ); ?> </a>
            <?php } else { ?>
                 <a href="https://wordpress.stackexchange.com/questions/75112/<?php the_permalink() ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a>
            <?php } ?>
       </div>
   <?php endwhile; wp_reset_query();
   }

okay now this code helps solve the issue with using custom post types to filter in a custom taxonomy. For example, I had project as my taxonomy and for custom post type. When i add different tags to each project they create a tagportfolio taxonomy in which add all the taxonomies and queries them.

Leave a Comment