Make WordPress Core


Ignore:
Timestamp:
03/31/2007 06:16:12 AM (18 years ago)
Author:
matt
Message:

All the query stuff we need for tag= URLs to work.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-includes/query.php

    r5087 r5149  
    8484        return true;
    8585
     86    return false;
     87}
     88
     89function is_tag( $slug = '' ) {
     90    global $wp_query;
     91    if ( !$wp_query->is_tag )
     92        return false;
     93
     94    if ( empty( $slug ) )
     95        return true;
     96
     97    $cat_obj = $wp_query->get_queried_object();
     98    if ( $category == $cat_obj->category_nicename )
     99        return true;
    86100    return false;
    87101}
     
    306320    var $is_author = false;
    307321    var $is_category = false;
     322    var $is_tag = false;
    308323    var $is_search = false;
    309324    var $is_feed = false;
     
    330345        $this->is_author = false;
    331346        $this->is_category = false;
     347        $this->is_tag = false;
    332348        $this->is_search = false;
    333349        $this->is_feed = false;
     
    384400            , 'w'
    385401            , 'category_name'
     402            , 'tag'
    386403            , 'author_name'
    387404            , 'feed'
     
    532549            }
    533550
     551            if (  '' != $qv['tag'] )
     552                $this->is_tag = true;
     553
    534554            if ( empty($qv['author']) || ($qv['author'] == '0') ) {
    535555                $this->is_author = false;
     
    542562            }
    543563
    544             if ( ($this->is_date || $this->is_author || $this->is_category) )
     564            if ( ($this->is_date || $this->is_author || $this->is_category || $this->is_tag ) )
    545565                $this->is_archive = true;
    546566        }
     
    838858            $out_cats = substr($out_cats, 0, -2);
    839859            if ( strlen($in_cats) > 0 )
    840                 $in_cats = " AND $wpdb->post2cat.category_id IN ($in_cats)";
     860                $in_cats = " AND $wpdb->post2cat.category_id IN ($in_cats) AND rel_type = 'category' ";
    841861            if ( strlen($out_cats) > 0 ) {
    842862                $ids = $wpdb->get_col("SELECT post_id FROM $wpdb->post2cat WHERE $wpdb->post2cat.category_id IN ($out_cats)");
     
    855875        }
    856876
     877        if ( '' != $q['tag'] ) {
     878            $reqcat= get_category_by_slug( $q['tag'] );
     879            if ( !empty($reqcat) )
     880                $reqcat = $reqcat->cat_ID;
     881            else
     882                $reqcat = 0;
     883
     884            $q['cat'] = $reqcat;
     885
     886            $tables = ", $wpdb->post2cat, $wpdb->categories";
     887            $join = " LEFT JOIN $wpdb->post2cat ON ($wpdb->posts.ID = $wpdb->post2cat.post_id) LEFT JOIN $wpdb->categories ON ($wpdb->post2cat.category_id = $wpdb->categories.cat_ID) ";
     888            $whichcat = " AND category_id IN ({$q['cat']}) AND rel_type = 'tag' ";
     889            $groupby = "{$wpdb->posts}.ID";
     890        }
     891
    857892        // Category stuff for nice URLs
    858893        if ( '' != $q['category_name'] ) {
     
    882917            $tables = ", $wpdb->post2cat, $wpdb->categories";
    883918            $join = " LEFT JOIN $wpdb->post2cat ON ($wpdb->posts.ID = $wpdb->post2cat.post_id) LEFT JOIN $wpdb->categories ON ($wpdb->post2cat.category_id = $wpdb->categories.cat_ID) ";
    884             $whichcat = " AND category_id IN ({$q['cat']}, ";
     919            $whichcat = " AND category_id IN ({$q['cat']} ";
    885920            $whichcat .= get_category_children($q['cat'], '', ', ');
    886921            $whichcat = substr($whichcat, 0, -2);
    887             $whichcat .= ")";
     922            $whichcat .= ") AND rel_type = 'category'";
    888923            $groupby = "{$wpdb->posts}.ID";
    889924        }
     925
     926
    890927
    891928        // Author/user stuff
Note: See TracChangeset for help on using the changeset viewer.