WordPress.org

Make WordPress Core

Changeset 8559


Ignore:
Timestamp:
08/05/08 22:05:53 (7 years ago)
Author:
ryan
Message:

Check both slug and name when determining if is_term(). fixes #6593 for 2.6

Location:
branches/2.6
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/2.6/wp-admin/includes/schema.php

    r8558 r8559  
    2020 term_group bigint(10) NOT NULL default 0, 
    2121 PRIMARY KEY  (term_id), 
    22  UNIQUE KEY slug (slug) 
     22 UNIQUE KEY slug (slug), 
     23 KEY name (name) 
    2324) $charset_collate; 
    2425CREATE TABLE $wpdb->term_taxonomy ( 
  • branches/2.6/wp-includes/query.php

    r8505 r8559  
    11241124            $include_tags = "'" . implode("', '", $q['tag_slug__in']) . "'"; 
    11251125            $whichcat .= " AND $wpdb->terms.slug IN ($include_tags) "; 
    1126             $reqtag = is_term( $q['tag_slug__in'][0], 'post_tag' ); 
     1126            $reqtag = get_term_by( 'slug', $q['tag_slug__in'][0], 'post_tag' ); 
    11271127            if ( !empty($reqtag) ) 
    1128                 $q['tag_id'] = $reqtag['term_id']; 
     1128                $q['tag_id'] = $reqtag->term_id; 
    11291129        } 
    11301130 
  • branches/2.6/wp-includes/taxonomy.php

    r8394 r8559  
    762762    global $wpdb; 
    763763 
     764    $select = "SELECT term_id FROM $wpdb->terms as t WHERE "; 
     765    $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 "; 
     766 
    764767    if ( is_int($term) ) { 
    765768        if ( 0 == $term ) 
    766769            return 0; 
    767770        $where = 't.term_id = %d'; 
    768     } else { 
    769         if ( '' === $term = sanitize_title($term) ) 
    770             return 0; 
    771         $where = 't.slug = %s'; 
    772     } 
    773  
    774     if ( !empty($taxonomy) ) 
    775         return $wpdb->get_row( $wpdb->prepare("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 $where AND tt.taxonomy = %s", $term, $taxonomy), ARRAY_A); 
    776  
    777     return $wpdb->get_var( $wpdb->prepare("SELECT term_id FROM $wpdb->terms as t WHERE $where", $term) ); 
     771        if ( !empty($taxonomy) ) 
     772            return $wpdb->get_row( $wpdb->prepare( $tax_select . $where . " AND tt.taxonomy = %s", $term, $taxonomy ), ARRAY_A ); 
     773        else 
     774            return $wpdb->get_var( $wpdb->prepare( $select . $where, $term ) ); 
     775    } 
     776 
     777    if ( '' === $slug = sanitize_title($term) ) 
     778        return 0; 
     779 
     780    $where = 't.slug = %s'; 
     781    $else_where = 't.name = %s'; 
     782 
     783    if ( !empty($taxonomy) ) { 
     784        if ( $result = $wpdb->get_row( $wpdb->prepare("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 $where AND tt.taxonomy = %s", $slug, $taxonomy), ARRAY_A) ) 
     785            return $result; 
     786             
     787        return $wpdb->get_row( $wpdb->prepare("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 $else_where AND tt.taxonomy = %s", $term, $taxonomy), ARRAY_A); 
     788    } 
     789 
     790    if ( $result = $wpdb->get_var( $wpdb->prepare("SELECT term_id FROM $wpdb->terms as t WHERE $where", $slug) ) ) 
     791        return $result; 
     792 
     793    return $wpdb->get_var( $wpdb->prepare("SELECT term_id FROM $wpdb->terms as t WHERE $else_where", $term) ); 
    778794} 
    779795 
Note: See TracChangeset for help on using the changeset viewer.