[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