Make WordPress Core


Ignore:
Timestamp:
05/23/2007 06:59:12 PM (18 years ago)
Author:
ryan
Message:

Convert category queries and list cats to taxonomy. see #4189

File:
1 edited

Legend:

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

    r5521 r5530  
    7777    $cat_obj = $wp_query->get_queried_object();
    7878
    79     if ( $category == $cat_obj->cat_ID )
    80         return true;
    81     else if ( $category == $cat_obj->cat_name )
    82         return true;
    83     elseif ( $category == $cat_obj->category_nicename )
     79    if ( $category == $cat_obj->term_id )
     80        return true;
     81    else if ( $category == $cat_obj->name )
     82        return true;
     83    elseif ( $category == $cat_obj->slug )
    8484        return true;
    8585
     
    843843            $q['cat'] = ''.urldecode($q['cat']).'';
    844844            $q['cat'] = addslashes_gpc($q['cat']);
    845             $join = " LEFT JOIN $wpdb->post2cat ON ($wpdb->posts.ID = $wpdb->post2cat.post_id) ";
     845            $join = " LEFT JOIN $wpdb->term_relationships ON ($wpdb->posts.ID = $wpdb->term_relationships.object_id) LEFT JOIN $wpdb->term_taxonomy ON ($wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id) ";
    846846            $cat_array = preg_split('/[,\s]+/', $q['cat']);
    847847            $in_cats = $out_cats = $out_posts = '';
     
    858858            $out_cats = substr($out_cats, 0, -2);
    859859            if ( strlen($in_cats) > 0 )
    860                 $in_cats = " AND $wpdb->post2cat.category_id IN ($in_cats) AND rel_type = 'category' ";
     860                $in_cats = " AND $wpdb->term_taxonomy.term_id IN ({$q['cat']}) ";
    861861            if ( strlen($out_cats) > 0 ) {
     862                // TODO
    862863                $ids = $wpdb->get_col("SELECT post_id FROM $wpdb->post2cat WHERE $wpdb->post2cat.category_id IN ($out_cats)");
    863864                if ( is_array($ids) && count($ids > 0) ) {
     
    871872                    $out_cats = '';
    872873            }
    873             $whichcat = $in_cats . $out_cats;
     874            $whichcat = " AND $wpdb->term_taxonomy.taxonomy = 'category' ";
     875            $whichcat .= $in_cats . $out_cats;
    874876            $groupby = "{$wpdb->posts}.ID";
    875877        }
     
    883885
    884886            $q['tag_id'] = $reqtag;
    885             // TODO: use term taxonomy
    886             $tables = ", $wpdb->post2cat, $wpdb->categories";
    887887            $join = " LEFT JOIN $wpdb->term_relationships ON ($wpdb->posts.ID = $wpdb->term_relationships.object_id) LEFT JOIN $wpdb->term_taxonomy ON ($wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id) ";
    888888            $whichcat = " AND $wpdb->term_taxonomy.term_id IN ({$q['tag_id']}) AND $wpdb->term_taxonomy.taxonomy = 'post_tag' ";
     
    909909
    910910            if ( !empty($reqcat) )
    911                 $reqcat = $reqcat->cat_ID;
     911                $reqcat = $reqcat->term_id;
    912912            else
    913913                $reqcat = 0;
     
    915915            $q['cat'] = $reqcat;
    916916
    917             $tables = ", $wpdb->post2cat, $wpdb->categories";
    918             $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) ";
    919             $whichcat = " AND category_id IN ({$q['cat']}, ";
     917            $join = " LEFT JOIN $wpdb->term_relationships ON ($wpdb->posts.ID = $wpdb->term_relationships.object_id) LEFT JOIN $wpdb->term_taxonomy ON ($wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id) ";
     918            $whichcat = " AND $wpdb->term_taxonomy.taxonomy = 'category' ";
     919            $whichcat .= "AND $wpdb->term_taxonomy.term_id IN ({$q['cat']}, ";
    920920            $whichcat .= get_category_children($q['cat'], '', ', ');
    921921            $whichcat = substr($whichcat, 0, -2);
    922             $whichcat .= ") AND rel_type = 'category'";
     922            $whichcat .= ")";
    923923            $groupby = "{$wpdb->posts}.ID";
    924924        }
Note: See TracChangeset for help on using the changeset viewer.