WordPress.org

Make WordPress Core

Changeset 6074


Ignore:
Timestamp:
09/11/07 18:06:52 (7 years ago)
Author:
ryan
Message:

Set tag_id to first tag in multi tag queries. Have single_cat_title() fallback to single_tag_title() if is_tag so that existing category templates will work with tags. fixes #4506

Location:
trunk/wp-includes
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-includes/general-template.php

    r6045 r6074  
    276276                return strip_tags($my_cat_name); 
    277277        } 
     278    } else if ( is_tag() ) { 
     279        return single_tag_title($prefix, $display); 
    278280    } 
    279281} 
     
    281283 
    282284function single_tag_title($prefix = '', $display = true ) { 
     285    if ( !is_tag() ) 
     286        return; 
     287 
    283288    $tag_id = intval( get_query_var('tag_id') ); 
     289 
    284290    if ( !empty($tag_id) ) { 
    285         $my_tag = &get_term($tag_id, 'post_tag'); 
     291        $my_tag = &get_term($tag_id, 'post_tag', OBJECT, 'display'); 
    286292        $my_tag_name = apply_filters('single_tag_title', $my_tag->name); 
    287293        if ( !empty($my_tag_name) ) { 
    288294            if ( $display ) 
    289                 echo $prefix.strip_tags($my_tag_name); 
     295                echo $prefix . $my_tag_name; 
    290296            else 
    291                 return strip_tags($my_tag_name); 
     297                return $my_tag_name; 
    292298        } 
    293299    } 
  • trunk/wp-includes/query.php

    r6035 r6074  
    606606            } 
    607607 
    608             if ( !is_array($qv['tag_slug__and']) || empty($qv['tag_slug__amd']) ) { 
     608            if ( !is_array($qv['tag_slug__and']) || empty($qv['tag_slug__and']) ) { 
    609609                $qv['tag_slug__and'] = array(); 
    610610            } else { 
     
    10271027            $include_tags = "'" . implode("', '", $q['tag__in']) . "'"; 
    10281028            $whichcat .= " AND $wpdb->term_taxonomy.term_id IN ($include_tags) "; 
     1029            $reqtag = is_term( $q['tag__in'][0], 'post_tag' ); 
     1030            if ( !empty($reqtag) ) 
     1031                $q['tag_id'] = $reqtag['term_id']; 
    10291032        } 
    10301033 
     
    10341037            $include_tags = "'" . implode("', '", $q['tag_slug__in']) . "'"; 
    10351038            $whichcat .= " AND $wpdb->terms.slug IN ($include_tags) "; 
     1039            $reqtag = is_term( $q['tag_slug__in'][0], 'post_tag' ); 
     1040            if ( !empty($reqtag) ) 
     1041                $q['tag_id'] = $reqtag['term_id']; 
    10361042        } 
    10371043 
     
    10421048                $whichcat .= " AND $wpdb->posts.ID NOT IN ($out_posts)"; 
    10431049            } 
     1050        } 
     1051 
     1052        if ( !empty($q['tag__and']) ) { 
     1053            $count = 0; 
     1054            foreach ( $q['tag__and'] as $tag_and ) { 
     1055                $join .= " LEFT JOIN $wpdb->term_relationships AS tr$count ON ($wpdb->posts.ID = tr$count.object_id) LEFT JOIN $wpdb->term_taxonomy AS tt$count ON (tr$count.term_taxonomy_id = tt$count.term_taxonomy_id) "; 
     1056                $whichcat .= " AND tt$count.term_id = '$tag_and' "; 
     1057                $count++; 
     1058            } 
     1059            $reqtag = is_term( $q['tag__and'][0], 'post_tag' ); 
     1060            if ( !empty($reqtag) ) 
     1061                $q['tag_id'] = $reqtag['term_id']; 
    10441062        } 
    10451063 
     
    10511069                $count++; 
    10521070            } 
     1071            $reqtag = is_term( $q['tag_slug__and'][0], 'post_tag' ); 
     1072            if ( !empty($reqtag) ) 
     1073                $q['tag_id'] = $reqtag['term_id']; 
    10531074        } 
    10541075 
Note: See TracChangeset for help on using the changeset viewer.