I need the terms in my tax_query to be the ones from the current post. I am trying to this by using a variable. The value of the variable is given by using the get_terms() function.

The problem is that it is not returning anything. It does however return the correct posts when I manually put the terms in the array.

How do I grab the posts terms automatically and place them in the terms parameter?

Here is the code that I am using.

//for use in the loop, list 5 post titles related to first tag on current post
$tags1 = get_terms($post->ID, 'b');
if ($tags1) {
echo '<div id="productsideheaders"><h2>PRODUCTS</h2></div>';
$args = array(
'tax_query' => array(
'taxonomy' => 'b',
'terms' => array('$tags1'),
'field' => 'slug',

$query = new WP_Query( $args );
$my_query = new WP_Query($args);
if( $my_query->have_posts() ) {
while ($my_query->have_posts()) : $my_query->the_post(); ?>
<div style="width: 270px;float: left;">
<?php if ( has_post_thumbnail()) : ?>
title="<?php the_title_attribute(); ?>" >
<?php the_post_thumbnail( array(40,40) ); ?>
<span style="font-size: 10pt;">" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title('' ); ?></span></div>
<?php endif; ?>


2 Answers 2


'terms' => array('$tags1'),

Remove the single quotes and it should look like 'terms' => array($tags1) OR 'terms' => $tags1

No need to make it an array, if you are using just one value.

$tags1 = wp_get_post_terms($post->ID, 'b');

Is what you are looking for? It gets sort of complicated with taxonomies and WordPress

get_terms doesn't work by post_id, it only lists categories.

  • The problem seems to be with the variable in the terms => $tags1. The get_terms(post->ID, 'b'); is getting the right terms but I can't get the variable assigned to them to work in the terms parameter.
    – Garret
    Sep 12, 2012 at 0:46

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.