WordPress.org

Make WordPress Core

Ticket #34525: 34525.diff

File 34525.diff, 2.7 KB (added by birgire, 4 years ago)
  • wp-includes/query.php

     
    20022002                }
    20032003
    20042004                if ( ! empty( $q['category__in'] ) ) {
    2005                         $q['category__in'] = array_map( 'absint', array_unique( (array) $q['category__in'] ) );
     2005                        $q['category__in'] = wp_parse_id_list( (array) $q['category__in'] );
    20062006                        $tax_query[] = array(
    20072007                                'taxonomy' => 'category',
    20082008                                'terms' => $q['category__in'],
     
    20122012                }
    20132013
    20142014                if ( ! empty($q['category__not_in']) ) {
    2015                         $q['category__not_in'] = array_map( 'absint', array_unique( (array) $q['category__not_in'] ) );
     2015                        $q['category__not_in'] = wp_parse_id_list( (array) $q['category__not_in'] );
    20162016                        $tax_query[] = array(
    20172017                                'taxonomy' => 'category',
    20182018                                'terms' => $q['category__not_in'],
     
    20222022                }
    20232023
    20242024                if ( ! empty($q['category__and']) ) {
    2025                         $q['category__and'] = array_map( 'absint', array_unique( (array) $q['category__and'] ) );
     2025                        $q['category__and'] = wp_parse_id_list( (array) $q['category__and'] );
    20262026                        $tax_query[] = array(
    20272027                                'taxonomy' => 'category',
    20282028                                'terms' => $q['category__and'],
     
    20662066                }
    20672067
    20682068                if ( !empty($q['tag__in']) ) {
    2069                         $q['tag__in'] = array_map('absint', array_unique( (array) $q['tag__in'] ) );
     2069                        $q['tag__in'] = wp_parse_id_list( (array) $q['tag__in'] );
    20702070                        $tax_query[] = array(
    20712071                                'taxonomy' => 'post_tag',
    20722072                                'terms' => $q['tag__in']
     
    20742074                }
    20752075
    20762076                if ( !empty($q['tag__not_in']) ) {
    2077                         $q['tag__not_in'] = array_map('absint', array_unique( (array) $q['tag__not_in'] ) );
     2077                        $q['tag__not_in'] = wp_parse_id_list( (array) $q['tag__not_in'] );
    20782078                        $tax_query[] = array(
    20792079                                'taxonomy' => 'post_tag',
    20802080                                'terms' => $q['tag__not_in'],
     
    20832083                }
    20842084
    20852085                if ( !empty($q['tag__and']) ) {
    2086                         $q['tag__and'] = array_map('absint', array_unique( (array) $q['tag__and'] ) );
     2086                        $q['tag__and'] = wp_parse_id_list( (array) $q['tag__and'] );
    20872087                        $tax_query[] = array(
    20882088                                'taxonomy' => 'post_tag',
    20892089                                'terms' => $q['tag__and'],
     
    29082908                }
    29092909
    29102910                if ( ! empty( $q['author__not_in'] ) ) {
    2911                         $author__not_in = implode( ',', array_map( 'absint', array_unique( (array) $q['author__not_in'] ) ) );
     2911                        $author__not_in = implode( ',', wp_parse_id_list( (array) $q['author__not_in'] ) );
    29122912                        $where .= " AND {$wpdb->posts}.post_author NOT IN ($author__not_in) ";
    29132913                } elseif ( ! empty( $q['author__in'] ) ) {
    2914                         $author__in = implode( ',', array_map( 'absint', array_unique( (array) $q['author__in'] ) ) );
     2914                        $author__in = implode( ',', wp_parse_id_list( (array) $q['author__in'] ) );
    29152915                        $where .= " AND {$wpdb->posts}.post_author IN ($author__in) ";
    29162916                }
    29172917