This members-only tutorial provides the steps to output entries of a specified Custom Post Type that belong to the same custom taxonomy as the current entry while excluding the current post on single CPT entries in WordPress.

Use Case

Let’s say there is a support custom post type with an associated support_category custom taxonomy and one of the support categories could be “Installation” (taxonomy term).

When a support post that has been categorized under this category is being viewed you want to show all other (i.e., excluding the current one being viewed) support posts that have also been categorized under “Installation”.

We can write a custom WP_Query for this. Here’s how.

Note: This is for the use case where a given entry has been categorized under a single custom taxonomy.

Step 1

Edit the Oxygen Template that applies to your singular CPT.

Step 2

Add a Code Block.

PHP & HTML:

<?php
	$post_type = 'support'; // this is the name of the custom post type
	$taxonomy = 'support_category'; // this is the name of the taxonomy
	
	$terms = get_the_terms( get_the_ID(), $taxonomy );

	$args = array(
		'post_type' => $post_type,
		'post__not_in' => array( get_the_ID() ),
			'orderby' => 'title',
			'order' => 'ASC',
			'tax_query' => array(
					array(
						'taxonomy' => $taxonomy,
						'field' => 'slug',
						'terms' => $terms[0]->slug
					)
				)
			);

	$query = new WP_Query( $args );

	if ( $query->have_posts() ) :
		echo '<h3 class="other-articles">Other articles in this section</h3><ul class="more-articles">';
		while ( $query->have_posts() ) : $query->the_post();
			printf( '<li><a href="%s">%s</a></li>', get_the_permalink(), get_the_title() );
		endwhile;
		echo '</ul>';
	endif;
?>

Enter your CPT and custom taxonomy names near the beginning of the code.

CSS (optional):

.other-articles {
  color: #484f56;
  font-weight: 400;
  font-size: 18px;
  margin-bottom: 36px;
}

.more-articles li {
  font-size: 14px;
  margin-bottom: 10px;
}

.more-articles li a {
  color: #484f56;
}

References

https://developer.wordpress.org/reference/functions/get_the_terms/

https://gist.github.com/luetkemj/2023628#file-wp-query-ref-php

Need help implementing a tutorial in your site or want to hire me for custom work?

HIRE ME

Find the article helpful and wish to donate?

DONATE
magnifiercross
>
linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram
%d bloggers like this: