WordPress.org

Make WordPress Core

Changeset 6074


Ignore:
Timestamp:
09/11/2007 06:06:52 PM (11 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.