Make WordPress Core

Ticket #11823: 11823.4.diff

File 11823.4.diff, 2.0 KB (added by kovshenin, 11 years ago)
  • src/wp-includes/taxonomy.php

     
    13101310                $inclusions = implode( ',', wp_parse_id_list( $include ) );
    13111311        }
    13121312
    1313         if ( ! empty( $inclusions ) )
     1313        if ( ! empty( $inclusions ) ) {
    13141314                $inclusions = ' AND t.term_id IN ( ' . $inclusions . ' )';
    1315         $where .= $inclusions;
     1315                $where .= $inclusions;
     1316        }
    13161317
    13171318        $exclusions = '';
    13181319        if ( ! empty( $exclude_tree ) ) {
     
    13391340                $exclusions = ' AND t.term_id NOT IN (' . $exclusions . ')';
    13401341
    13411342        $exclusions = apply_filters( 'list_terms_exclusions', $exclusions, $args );
    1342         $where .= $exclusions;
    13431343
     1344        if ( ! empty( $exclusions ) )
     1345                $where .= $exclusions;
     1346
    13441347        if ( !empty($slug) ) {
    13451348                $slug = sanitize_title($slug);
    13461349                $where .= " AND t.slug = '$slug'";
  • tests/phpunit/tests/term/getTerms.php

     
    121121        }
    122122
    123123        /**
    124          * @ti
    125          * cket 11823
     124         * @ticket 11823
    126125         */
    127126        function test_get_terms_include_exclude() {
     127                global $wpdb;
     128
    128129                $term_id1 = $this->factory->tag->create();
    129130                $term_id2 = $this->factory->tag->create();
    130131                $inc_terms = get_terms( 'post_tag', array(
     
    138139                        'hide_empty' => false
    139140                ) );
    140141                $this->assertEquals( array(), wp_list_pluck( $exc_terms, 'term_id' ) );
     142
     143                // These should not generate query errors.
     144                get_terms( 'post_tag', array( 'exclude' => array( 0 ), 'hide_empty' => false ) );
     145                $this->assertEmpty( $wpdb->last_error );
     146
     147                get_terms( 'post_tag', array( 'exclude' => array( 'unexpected-string' ), 'hide_empty' => false ) );
     148                $this->assertEmpty( $wpdb->last_error );
     149
     150                get_terms( 'post_tag', array( 'include' => array( 'unexpected-string' ), 'hide_empty' => false ) );
     151                $this->assertEmpty( $wpdb->last_error );
    141152        }
    142153
    143154        /**