WordPress.org

Make WordPress Core

Ticket #16101: 16101.diff

File 16101.diff, 1.6 KB (added by Howdy_McGee, 11 months ago)

Changing to ctype_data() to allow string based integers.

  • taxonomy.php

     
    14261426        $select     = "SELECT term_id FROM $wpdb->terms as t WHERE ";
    14271427        $tax_select = "SELECT tt.term_id, tt.term_taxonomy_id FROM $wpdb->terms AS t INNER JOIN $wpdb->term_taxonomy as tt ON tt.term_id = t.term_id WHERE ";
    14281428
    1429         if ( is_int( $term ) ) {
     1429        if ( ctype_digit( $term ) ) {
    14301430                if ( 0 === $term ) {
    14311431                        return 0;
    14321432                }
     
    22172217                return $term;
    22182218        }
    22192219
    2220         if ( is_int( $term ) && 0 === $term ) {
     2220        if ( ctype_digit( $term ) && 0 === $term ) {
    22212221                return new WP_Error( 'invalid_term_id', __( 'Invalid term ID.' ) );
    22222222        }
    22232223
     
    25922592
    25932593                if ( ! $term_info ) {
    25942594                        // Skip if a non-existent term ID is passed.
    2595                         if ( is_int( $term ) ) {
     2595                        if ( ctype_digit( $term ) ) {
    25962596                                continue;
    25972597                        }
    25982598
     
    27622762                $term_info = term_exists( $term, $taxonomy );
    27632763                if ( ! $term_info ) {
    27642764                        // Skip if a non-existent term ID is passed.
    2765                         if ( is_int( $term ) ) {
     2765                        if ( ctype_digit( $term ) ) {
    27662766                                continue;
    27672767                        }
    27682768                }
     
    43444344        global $wp_rewrite;
    43454345
    43464346        if ( ! is_object( $term ) ) {
    4347                 if ( is_int( $term ) ) {
     4347                if ( ctype_digit( $term ) ) {
    43484348                        $term = get_term( $term, $taxonomy );
    43494349                } else {
    43504350                        $term = get_term_by( 'slug', $term, $taxonomy );
     
    45994599
    46004600        $terms = (array) $terms;
    46014601
    4602         $ints = array_filter( $terms, 'is_int' );
     4602        $ints = array_filter( $terms, 'ctype_digit' );
    46034603        if ( $ints ) {
    46044604                $strs = array_diff( $terms, $ints );
    46054605        } else {