[wp-hackers] tags and categories combined not working: is it a bug or a feature?

Burobjorn burobjorn at gmail.com
Wed Feb 13 16:25:02 GMT 2008


Ok, Otto just mentioned a bug (http://trac.wordpress.org/ticket/5433) 
which seems exaclty what I encountered.

Thanks Otto for mentioning this!

ps:Just out of curiosity how do you use Trac in order to find these? I 
searched through it but this never came up...

All the best,

grtz
BjornW


Burobjorn wrote:
> Hi,
> 
> After some trial and error and some pointers by Christine and people on 
> IRC it seems that using both 1 tag and 1 category produces SQL code but 
> no results. However using multiple tags and 1 category does give back 
> results. This is odd as there should be a result both times. Perhaps 
> this is a bug?
> 
> == what I did ==
> I have a lot of posts which belong to categories. Every post belongs to 
> at least 2 categories, namely a parent category and a child.
> 
> i.e.
> parent category: mediaskills and awarness
> child category: media-awarness
> 
> Every post has also been tagged with at least one tag and mostly with 
> more than 2.
> 
> i.e.
> elderly, kids, teens
> 
> Now I would like to get all posts in the category media-awarness (let's 
> say the id for this is 12) with the tags 'elderly' and 'kids'. I do this 
> using query url parameters:
> 
> http://mediawijsheid/?tag=ouderen+kinderen&cat=12
> 
> This results in the following query code which I dumped using
> <?php global $wp_query; print_r($wp_query) ?> in the search.php template:
> 
> SELECT SQL_CALC_FOUND_ROWS wp_posts.* FROM wp_posts INNER JOIN 
> wp_term_relationships ON (wp_posts.ID = wp_term_relationships.object_id) 
> INNER JOIN wp_term_taxonomy ON (wp_term_relationships.term_taxonomy_id = 
> wp_term_taxonomy.term_taxonomy_id) WHERE 1=1 AND 
> wp_term_taxonomy.taxonomy = 'category' AND wp_term_taxonomy.term_id IN 
> ('12') AND wp_posts.ID IN (7, 8, 17) AND post_type IN('page', 'post') 
> AND (post_status = 'publish' OR post_status = 'private') GROUP BY 
> wp_posts.ID ORDER BY post_date DESC LIMIT 0, 10
> 
> And I get the results I would expect. When I want to get all posts in 
> the category media-awarness (still using id 12) and just the tag 
> 'elderly' I get the following SQL code and no results :
> 
> SELECT SQL_CALC_FOUND_ROWS wp_posts.* FROM wp_posts INNER JOIN 
> wp_term_relationships ON (wp_posts.ID = wp_term_relationships.object_id) 
> INNER JOIN wp_term_taxonomy ON (wp_term_relationships.term_taxonomy_id = 
> wp_term_taxonomy.term_taxonomy_id) WHERE 1=1 AND 
> wp_term_taxonomy.taxonomy = 'category' AND wp_term_taxonomy.term_id IN 
> ('12') AND wp_term_taxonomy.taxonomy = 'post_tag' AND 
> wp_term_taxonomy.term_id IN ('19') AND post_type IN('page', 'post') AND 
> (post_status = 'publish' OR post_status = 'private') GROUP BY 
> wp_posts.ID ORDER BY post_date DESC LIMIT 0, 10
> 
> What the heck is going on?
> 
> Any help much appreciated!
> 
> All the best,
> 
> grtz
> BjornW
> 


-- 

met vriendelijke groet,
Bjorn Wijers

* b u r o b j o r n .nl *
digitaal vakmanschap | digital craftsmanship

Concordiastraat 68-126
3551 EM Utrecht
The Netherlands

phone: +31 30 2444 101
http://www.burobjorn.nl


More information about the wp-hackers mailing list