WordPress.org

Make WordPress Core

Ticket #16152: 16152.3.patch

File 16152.3.patch, 1.3 KB (added by SergeyBiryukov, 7 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