Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function wp_se_273314( $query ) {
- if ( ! $query->is_tax() || ! isset( $query->query['product_cat'] ) ) {
- return;
- }
- $levels = explode( '/', $query->query['product_cat'] );
- $current_index = count( $levels ) - 1;
- $current_term = null;
- foreach ( $query->tax_query->queries as &$tax_query ) {
- if ( $tax_query['taxonomy'] == 'product_cat' ) {
- if ( $current_index > 0 ) {
- $parent = get_term_by( 'slug', $levels[ $current_index - 1 ], 'product_cat' );
- $term_children = get_term_children( $parent->term_id, 'product_cat' );
- foreach ( $term_children as $child ) {
- $term = get_term( $child );
- if ( $term->slug == $levels[ $current_index ] ) {
- $current_term = $term;
- }
- }
- if ( is_null( $current_term ) ) {
- die( 'An error occurred when retrieving terms' );
- }
- $index = array_search( $levels[ $current_index ], $tax_query['terms'] );
- if ( $index !== false ) {
- $tax_query['field'] = 'id';
- $tax_query['operator'] = '=';
- $tax_query['terms'][ $index ] = $current_term->term_id;
- }
- }
- }
- }
- $query->tax_query->queried_terms['product_cat']['terms'][0] = $current_term->term_id;
- $query->tax_query->queried_terms['product_cat']['field'] = 'id';
- $query->queried_object->term_id = $current_term->term_id;
- $query->queried_object_id = $current_term->term_id;
- $query->queried_object->term_taxonomy_id = $current_term->term_taxonomy_id;
- $query->queried_object->parent = $current_term->parent;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement