WordPress.org

Make WordPress Core

Ticket #24245: 24245.diff

File 24245.diff, 1.7 KB (added by wonderboymusic, 23 months 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'],