[wp-hackers] Search in given taxonomy term

Patrik Bóna patrik.bona at mrhead.sk
Fri Sep 10 11:13:03 UTC 2010


Oh, i've forgot to add !is_admin() to if, so it should be:

if(!$wp_query->is_tax && is_search() && !is_admin()) {

This is working perfectly for me.

Patrik

On 09/10/2010 12:59 PM, Patrik Bóna wrote:
> I have opened ticket for this issue:
>
> http://core.trac.wordpress.org/ticket/14831
>
> And if anyone is interested, this is my workaround:
>
> function gb_search_join($join, $wp_query) {
>     global $wpdb, $lang;
>
>     if(!$wp_query->is_tax && is_search()) {
>         $join .= " JOIN $wpdb->term_relationships tr1 ON 
> ($wpdb->posts.ID = tr1.object_ID)
>                 JOIN $wpdb->term_taxonomy tt1 ON (tr1.term_taxonomy_id 
> = tt1.term_taxonomy_id)
>                 JOIN $wpdb->terms t1 ON (tt1.term_id = t1.term_id AND 
> tt1.taxonomy = 'jazyk' AND t1.slug = '$lang')";
>     }
>
>     return $join;
> }
> add_filter('posts_join', 'gb_search_join', 10, 2);
>
> The reason why i am checking $wp_query->is_tax is that when this bug 
> will be fixed, then is_tax should be set to true in search & taxonomy 
> query and then JOIN will be not modified. So i don't need to change 
> code when client will upgrade his WP installation.  I hope i am right ;).
>
> Patrik
>
> On 09/08/2010 02:21 PM, scribu wrote:
>> On Wed, Sep 8, 2010 at 2:43 PM, Patrik Bóna<patrik.bona at mrhead.sk>  
>> wrote:
>>
>>> For example:
>>>
>>> query_posts("taxonomy=jazyk&term=sk&s=word');
>>>
>>> in this case taxonomy and term are ignored a everything containing 
>>> 'word'
>>> is returned...
>>>
>>> And it is also same if i type these parameters to url without
>>> query_posts...
>>>
>> I see. That's a bug. You should open a ticket in trac.
>>
>>
>
> _______________________________________________
> wp-hackers mailing list
> wp-hackers at lists.automattic.com
> http://lists.automattic.com/mailman/listinfo/wp-hackers



More information about the wp-hackers mailing list