#21228 closed enhancement (fixed)
Add term_taxonomy_id to WP_Tax_Query fields
| Reported by: |
|
Owned by: |
|
|---|---|---|---|
| Milestone: | 3.5 | Priority: | normal |
| Severity: | normal | Version: | 3.4.1 |
| Component: | Taxonomy | Keywords: | has-patch needs-testing commit |
| Focuses: | Cc: |
Description
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' )
) );
Attachments (1)
Change History (4)
Note: See
TracTickets for help on using
tickets.
+100