[wp-trac] [WordPress Trac] #21228: Add term_taxonomy_id to WP_Tax_Query fields

WordPress Trac wp-trac at lists.automattic.com
Thu Jul 12 06:30:52 UTC 2012


#21228: Add term_taxonomy_id to WP_Tax_Query fields
----------------------------+-----------------------------
 Reporter:  wonderboymusic  |      Owner:
     Type:  enhancement     |     Status:  new
 Priority:  normal          |  Milestone:  Awaiting Review
Component:  Taxonomy        |    Version:  3.4.1
 Severity:  normal          |   Keywords:  has-patch
----------------------------+-----------------------------
 Allows WP_Tax_Query::transform_query( ) to not make any queries in some
 cases - this already works in the following cases:

 1) tax_query with 'include_children' => false, for hierarchical and non-
 hierarchical taxonomies
 2) non-hierarchical taxonomies

 By adding the condition in my patch to WP_Tax_Query::transform_query( ),
 'include_children' => true works for hierarchical taxonomies when 'field'
 is 'term_taxonomy_id.'

 If cases 1 or 2 are true, the query doesn't need to be transformed at all,
 which is better than resolving term_ids or slugs / names to tt_ids

 Example query:

 {{{
 add_filter( 'pre_get_posts', function ( $query ) {
     if ( !$query->is_main_query() )
         return $query;

     $tax_query = array(
         'include_children'  => true,
         'taxonomy'          => 'region',
         'field'             => 'term_taxonomy_id',
         'terms'             => array( 7, 8 ),
         'operator'          => 'IN'
     );

     $query->set( 'tax_query', array( $tax_query ) );

     return $query;
 } );

 register_taxonomy( 'region', 'post', array(
     'hierarchical'      => true,
     'public'            => true,
     'show_ui'           => true,
     'labels'            => array( 'name' => 'Regions' )
 ) );
 }}}

-- 
Ticket URL: <http://core.trac.wordpress.org/ticket/21228>
WordPress Trac <http://core.trac.wordpress.org/>
WordPress blogging software


More information about the wp-trac mailing list