WordPress.org

Make WordPress Core

Ticket #16152: 16152.3.patch

File 16152.3.patch, 1.3 KB (added by SergeyBiryukov, 3 years ago)
  • wp-includes/query.php

     
    16841684                                $cat = abs($cat); 
    16851685                                if ( $in ) { 
    16861686                                        $q['category__in'][] = $cat; 
     1687                                        $q['category__in'] = array_merge( $q['category__in'], get_term_children($cat, 'category') ); 
    16871688                                } else { 
    16881689                                        $q['category__not_in'][] = $cat; 
     1690                                        $q['category__not_in'] = array_merge( $q['category__not_in'], get_term_children($cat, 'category') ); 
    16891691                                } 
    16901692                        } 
    16911693                        $q['cat'] = implode(',', $req_cats); 
    16921694                } 
    16931695 
    16941696                if ( !empty($q['category__in']) ) { 
    1695                         $q['category__in'] = array_unique( $q['category__in'] ); 
     1697                        $q['category__in'] = array_unique( (array) $q['category__in'] ); 
    16961698                        $tax_query[] = array( 
    16971699                                'taxonomy' => 'category', 
    16981700                                'terms' => $q['category__in'], 
    1699                                 'field' => 'term_id' 
     1701                                'field' => 'term_id', 
     1702                                'include_children' => false 
    17001703                        ); 
    17011704                } 
    17021705 
    17031706                if ( !empty($q['category__not_in']) ) { 
    1704                         $q['category__not_in'] = array_unique( $q['category__not_in'] ); 
     1707                        $q['category__not_in'] = array_unique( (array) $q['category__not_in'] ); 
    17051708                        $tax_query[] = array( 
    17061709                                'taxonomy' => 'category', 
    17071710                                'terms' => $q['category__not_in'], 
    17081711                                'operator' => 'NOT IN', 
     1712                                'include_children' => false 
    17091713                        ); 
    17101714                } 
    17111715