Title: query_posts displaying the wrong posts
Last modified: August 19, 2016

---

# query_posts displaying the wrong posts

 *  Resolved [David Gard](https://wordpress.org/support/users/duck_boy/)
 * (@duck_boy)
 * [16 years, 1 month ago](https://wordpress.org/support/topic/query_posts-displaying-the-wrong-posts/)
 * Hey all,
 * For some reason when I use query_posts the wrong posts are being displayed when
   I am filtering by a custom taxonomy, called ‘contact’, and i cannot figure out
   why. Rather than the list of Posts with the contact a Post that has the same 
   name as the contact is being displayed.
 * I am using this code –
 *     ```
       $args = Array( // Array of arguments for query_posts()
       	'cat' => $cat,
       	'posts_per_page' => 10,
       	'paged' => $paged,
       	'tag' => get_query_var('tag'),
       	'tla_tag' => get_query_var('tla_tag'),
       	'contact' => get_query_var('contact'));
       query_posts($args);
       ```
   
 * Yet the arguments are collecting the correct data –
    Array ( [cat] => 75 [posts_per_page]
   => 10 [paged] => 0 [tag] => [tla_tag] => [contact] => john-smith )
 * Any help would be appriciated.
 * Thanks.

Viewing 15 replies - 1 through 15 (of 17 total)

1 [2](https://wordpress.org/support/topic/query_posts-displaying-the-wrong-posts/page/2/?output_format=md)
[→](https://wordpress.org/support/topic/query_posts-displaying-the-wrong-posts/page/2/?output_format=md)

 *  [MichaelH](https://wordpress.org/support/users/michaelh/)
 * (@michaelh)
 * [16 years, 1 month ago](https://wordpress.org/support/topic/query_posts-displaying-the-wrong-posts/#post-1397737)
 * quoting scribu here [http://core.trac.wordpress.org/ticket/9951](http://core.trac.wordpress.org/ticket/9951)
 * > Say you have a ‘genre’ custom taxonomy.
   > If it’s hierarchical, these are the query vars that should become available:
   > ‘genre’, ‘genre__in’, ‘genre__not_in’, ‘genre__and’
   > …in other words, the exact same query vars that are currently available for
   > categories.
   > If it’s not hierarchical, these are the query vars that should become available:
   > ‘genre’, ‘genre__in’, ‘genre__not_in’, ‘genre__and’, ‘genre_slug__in’, ‘genre_slug__and’
   > …in other words, the exact same query vars that are currently available for
   > tags.
 *  Thread Starter [David Gard](https://wordpress.org/support/users/duck_boy/)
 * (@duck_boy)
 * [16 years, 1 month ago](https://wordpress.org/support/topic/query_posts-displaying-the-wrong-posts/#post-1397775)
 * Michael,
 * Thanks for the reply, but not really sure what to do with that.
 * The issue is that my other custom taxonomy (tla_tag) is working fine when this
   method is used, for example – Array ( [cat] => 75 [posts_per_page] => 10 [paged]
   => 0 [tag] => [tla_tag] => tla-employment [contact] => ) – displays the correct
   posts, so I suspect that it is becaus I also have a post that is of the same 
   name as that of the term in the contact taxonomy, and it is this that I cannot
   figure out.
 * Thanks.
 *  [MichaelH](https://wordpress.org/support/users/michaelh/)
 * (@michaelh)
 * [16 years, 1 month ago](https://wordpress.org/support/topic/query_posts-displaying-the-wrong-posts/#post-1397807)
 * What happens if you just query for
 *     ```
       'contact' => get_query_var('contact'));
       ```
   
 *  Thread Starter [David Gard](https://wordpress.org/support/users/duck_boy/)
 * (@duck_boy)
 * [16 years, 1 month ago](https://wordpress.org/support/topic/query_posts-displaying-the-wrong-posts/#post-1397838)
 * I get the same result.
 *  [MichaelH](https://wordpress.org/support/users/michaelh/)
 * (@michaelh)
 * [16 years, 1 month ago](https://wordpress.org/support/topic/query_posts-displaying-the-wrong-posts/#post-1397920)
 * Meaning that `'contact' => get_query_var('contact'));` is not working?
 *  Thread Starter [David Gard](https://wordpress.org/support/users/duck_boy/)
 * (@duck_boy)
 * [16 years, 1 month ago](https://wordpress.org/support/topic/query_posts-displaying-the-wrong-posts/#post-1397972)
 * It’s filtering posts but it is displaying a Post with the same name as the contact,
   rather than all posts that have that contact. E.g it’s giving results for ‘name’
   => get_query_var(‘contact’) as opposed to ‘contact’ => get_query_var(‘contact’).
 * Live example here – [http://www.dynedrewett.com/?contact=hollie-wright](http://www.dynedrewett.com/?contact=hollie-wright)
   
   As you can see, the top of the page reports the correct number of posts usinig
   get_term_by(), but query_posts() seems to be not quite on the ball.
 * Thanks.
 *  Thread Starter [David Gard](https://wordpress.org/support/users/duck_boy/)
 * (@duck_boy)
 * [16 years, 1 month ago](https://wordpress.org/support/topic/query_posts-displaying-the-wrong-posts/#post-1398060)
 * Quick recap –
 * using `query_posts('contact' => get_query_var('contact'));` (Contact being a 
   custom taxonomy) returns one single post named {contact}, rather than all of 
   the posts with that contact.
 * Live example here – [http://www.dynedrewett.com/?contact=hollie-wright](http://www.dynedrewett.com/?contact=hollie-wright)
 * Any help would be appricated.
 *  [Mark / t31os](https://wordpress.org/support/users/t31os_/)
 * (@t31os_)
 * [16 years, 1 month ago](https://wordpress.org/support/topic/query_posts-displaying-the-wrong-posts/#post-1398061)
 * How are you registering the taxonomy?
 * Also you could have a conflict with rewrite rules if you have both a page with
   the name contact and a taxonomy with that name ….
 *  Thread Starter [David Gard](https://wordpress.org/support/users/duck_boy/)
 * (@duck_boy)
 * [16 years, 1 month ago](https://wordpress.org/support/topic/query_posts-displaying-the-wrong-posts/#post-1398134)
 * Hey T310s,
 * Sorry for delay in reply, have been away.
 * I am registering the taxonomy through functions.php as follows –
 *     ```
       function create_my_taxonomies() {
       	register_taxonomy( 'contact', 'post', array('hierarchical' => false, 'label' => 'Contacts', 'query_var' => true, 'rewrite' => false));
       	register_taxonomy( 'tla_tag', 'post', array('hierarchical' => false, 'label' => 'TLA Tags', 'query_var' => true, 'rewrite' => Array('slug' => 'tla_tag')));
       }
       add_action( 'init', 'create_my_taxonomies', 0 );
       ```
   
 * I have also tried `'rewrite' => Array('slug' => 'contact')` but unfortunatly 
   that made no difference.
 * Seeing as this is causing me a rather large headache, is there any ohter way 
   of displaying the posts that I am after that you know of at all?
 * Thanks.
 *  [Mark / t31os](https://wordpress.org/support/users/t31os_/)
 * (@t31os_)
 * [16 years, 1 month ago](https://wordpress.org/support/topic/query_posts-displaying-the-wrong-posts/#post-1398135)
 * Looking back, this line looks wrong..
 *     ```
       query_posts('contact' => get_query_var('contact'));
       ```
   
 * ..maybe something like..
 *     ```
       query_posts( array( 'contact' => get_query_var('contact') ) );
       ```
   
 * or
 *     ```
       query_posts( 'contact='.get_query_var('contact') );
       ```
   
 * ..would work..
 *  Thread Starter [David Gard](https://wordpress.org/support/users/duck_boy/)
 * (@duck_boy)
 * [16 years, 1 month ago](https://wordpress.org/support/topic/query_posts-displaying-the-wrong-posts/#post-1398136)
 * Hey T31os,
 * I am using –
 *     ```
       $args = Array( // Array of arguments for query_posts()
       	'cat' => $cat,
       	'posts_per_page' => 10,
       	'paged' => $paged,
       	'tag' => get_query_var('tag'),
       	'tla_tag' => get_query_var('tla_tag'),
       	'contact' => get_query_var('contact'));
       query_posts($args);
       ```
   
 * as opposed to just –
    `query_posts('contact' => get_query_var('contact'));`
 * Have tried the other two lines though, just in case, but they both displayed 
   exactly the same. Using the method above the correct posts are displayed for ‘
   cat’, ‘tag’, and ‘tla_tag’, that is what led me to think it’s because of the 
   post name. I’m not sure how else I can do it though, which is frustrating!
 * Thanks.
 *  [Mark / t31os](https://wordpress.org/support/users/t31os_/)
 * (@t31os_)
 * [16 years, 1 month ago](https://wordpress.org/support/topic/query_posts-displaying-the-wrong-posts/#post-1398137)
 * What about if you remove the other query vars? Simply as a test to see if there’s
   a problem calling that query var alongside others..
 * I can see you have a page called contact, i can’t imagine that will work alongside
   a registered query var with the same name.. you’ll end up with two very similar
   sets of rules in the rewrite array … i’d imagine one rule will win out and work,
   the other won’t..
 * Try changing the page permalink, contact-us, or whatever, something that will
   make it differ from the query var..
 *  Thread Starter [David Gard](https://wordpress.org/support/users/duck_boy/)
 * (@duck_boy)
 * [16 years, 1 month ago](https://wordpress.org/support/topic/query_posts-displaying-the-wrong-posts/#post-1398138)
 * Even with just that one it still is problamatic. I take it you have visited the
   page to see what is going on?
 * I’ll try adding another taxonomy with a slightly different name in a minute, 
   but I still think it is because there is a post named the same as the contact(
   I.e. Hollie Writht). Just had a though – I could call the contacts something 
   like ‘contact-Hollie_Wright’ and put her name in the description and display 
   that.
 * Will let you know.
 *  Thread Starter [David Gard](https://wordpress.org/support/users/duck_boy/)
 * (@duck_boy)
 * [16 years, 1 month ago](https://wordpress.org/support/topic/query_posts-displaying-the-wrong-posts/#post-1398139)
 * Ok, I think I have accidently found the problem, and it is entirely of my own
   making!
 * I run a small function to get an excerpt of the contacts profile if `get_query_var('
   contact')` is not empty (but it aslo does other bits) to display above the posts
   they are the contact for, and when I accidently made that part of the function
   not the posts displayed correctly. It’s because I’m running query_posts() in 
   here as well isn’t it, so it’s getting rid of my previous options.
 *     ```
       if($typeOf == 'contact'){ // Displays excerpt from the Contacts Profile and a link to the full Profile
       	if($term->name != ''){
       		$contactDetails = query_posts(array('name' => $term->slug));
       		foreach($contactDetails as $contactDetail) {
       			$post_content = explode('.', strip_tags($contactDetail->post_content));
       			echo '<p>' . $post_content[0] . '. <a href="http://www.dynedrewett.com/' . $contactDetail->post_name . '">View full Profile</a></p>';
       		}
       	}
       }
       ```
   
 * I’ll look for another way to achieve what I am looking for!
 * Thanks for the help.
 *  [Mark / t31os](https://wordpress.org/support/users/t31os_/)
 * (@t31os_)
 * [16 years, 1 month ago](https://wordpress.org/support/topic/query_posts-displaying-the-wrong-posts/#post-1398140)
 * > It’s because I’m running query_posts() in here as well isn’t it, so it’s getting
   > rid of my previous options.
 * Test your theory, remove the code and see if the query vars then behave properly,
   you can always add it back.. 🙂

Viewing 15 replies - 1 through 15 (of 17 total)

1 [2](https://wordpress.org/support/topic/query_posts-displaying-the-wrong-posts/page/2/?output_format=md)
[→](https://wordpress.org/support/topic/query_posts-displaying-the-wrong-posts/page/2/?output_format=md)

The topic ‘query_posts displaying the wrong posts’ is closed to new replies.

 * In: [Fixing WordPress](https://wordpress.org/support/forum/how-to-and-troubleshooting/)
 * 17 replies
 * 4 participants
 * Last reply from: [Drew](https://wordpress.org/support/users/drook/)
 * Last activity: [15 years, 7 months ago](https://wordpress.org/support/topic/query_posts-displaying-the-wrong-posts/page/2/#post-1398201)
 * Status: resolved

## Topics

### Topics with no replies

### Non-support topics

### Resolved topics

### Unresolved topics

### All topics
