Make WordPress Core

Ticket #16157: 16157.diff

File 16157.diff, 1.8 KB (added by ryan, 16 years ago)

tag_slugin and some sanitization

  • wp-includes/query.php

     
    16921692                }
    16931693
    16941694                if ( !empty($q['category__in']) ) {
    1695                         $q['category__in'] = array_unique( $q['category__in'] );
     1695                        $q['category__in'] = array_map('absint', array_unique( $q['category__in'] ) );
    16961696                        $tax_query[] = array(
    16971697                                'taxonomy' => 'category',
    16981698                                'terms' => $q['category__in'],
    … …  
    17011701                }
    17021702
    17031703                if ( !empty($q['category__not_in']) ) {
    1704                         $q['category__not_in'] = array_unique( $q['category__not_in'] );
     1704                        $q['category__not_in'] = array_map('absint', array_unique( $q['category__not_in'] ) );
    17051705                        $tax_query[] = array(
    17061706                                'taxonomy' => 'category',
    17071707                                'terms' => $q['category__not_in'],
    … …  
    17111711
    17121712                // Tag stuff
    17131713                if ( !empty($q['tag_id']) ) {
     1714                        $q['tag_id'] = absint( $q['tag_id'] );
    17141715                        $tax_query[] = array(
    17151716                                'taxonomy' => 'post_tag',
    17161717                                'terms' => $q['tag_id'],
    … …  
    17181719                }
    17191720
    17201721                if ( !empty($q['tag__in']) ) {
     1722                        $q['tag__in'] = array_map('absint', array_unique( $q['tag__in'] ) );
    17211723                        $tax_query[] = array(
    17221724                                'taxonomy' => 'post_tag',
    17231725                                'terms' => $q['tag__in'],
    … …  
    17251727                }
    17261728
    17271729                if ( !empty($q['tag__not_in']) ) {
     1730                        $q['tag__not_in'] = array_map('absint', array_unique( $q['tag__not_in'] ) );
    17281731                        $tax_query[] = array(
    17291732                                'taxonomy' => 'post_tag',
    17301733                                'terms' => $q['tag__not_in'],
    … …  
    17321735                        );
    17331736                }
    17341737
     1738                if ( !empty($q['tag_slug__in']) ) {
     1739                        $q['tag_slug__in'] = array_map('sanitize_title', $q['tag_slug__in']);
     1740                        $tax_query[] = array(
     1741                                'taxonomy' => 'post_tag',
     1742                                'terms' => $q['tag_slug__in'],
     1743                                'field' => 'slug',
     1744                        );
     1745                }
     1746
    17351747                $this->tax_query = new WP_Tax_Query( $tax_query );
    17361748        }
    17371749