WordPress.org

Make WordPress Core

Ticket #24245: 24245.diff

File 24245.diff, 1.7 KB (added by wonderboymusic, 5 years ago)
  • wp-includes/query.php

    diff --git a/wp-includes/query.php b/wp-includes/query.php
    index 04286aa..625a4fa 100644
    a b class WP_Query { 
    17531753                        $q['cat'] = implode(',', $req_cats);
    17541754                }
    17551755
    1756                 if ( !empty($q['category__in']) ) {
    1757                         $q['category__in'] = array_map('absint', array_unique( (array) $q['category__in'] ) );
     1756                if ( ! empty( $q['category__and'] ) && 1 === count( (array) $q['category__and'] ) ) {
     1757                        $q['category__and'] = (array) $q['category__and'];
     1758                        if ( ! isset( $q['category__in'] ) )
     1759                                $q['category__in'] = array();
     1760                        $q['category__in'][] = absint( reset( $q['category__and'] ) );
     1761                        unset( $q['category__and'] );
     1762                }
     1763                       
     1764                if ( ! empty( $q['category__in'] ) ) {
     1765                        $q['category__in'] = array_map( 'absint', array_unique( (array) $q['category__in'] ) );                 
    17581766                        $tax_query[] = array(
    17591767                                'taxonomy' => 'category',
    17601768                                'terms' => $q['category__in'],
    class WP_Query { 
    17631771                        );
    17641772                }
    17651773
    1766                 if ( !empty($q['category__not_in']) ) {
    1767                         $q['category__not_in'] = array_map('absint', array_unique( (array) $q['category__not_in'] ) );
     1774                if ( ! empty($q['category__not_in']) ) {
     1775                        $q['category__not_in'] = array_map( 'absint', array_unique( (array) $q['category__not_in'] ) );
    17681776                        $tax_query[] = array(
    17691777                                'taxonomy' => 'category',
    17701778                                'terms' => $q['category__not_in'],
    class WP_Query { 
    17731781                        );
    17741782                }
    17751783
    1776                 if ( !empty($q['category__and']) ) {
    1777                         $q['category__and'] = array_map('absint', array_unique( (array) $q['category__and'] ) );
     1784                if ( ! empty($q['category__and']) ) {
     1785                        $q['category__and'] = array_map( 'absint', array_unique( (array) $q['category__and'] ) );
    17781786                        $tax_query[] = array(
    17791787                                'taxonomy' => 'category',
    17801788                                'terms' => $q['category__and'],