Changeset 1972

Show
Ignore:
Timestamp:
12/18/04 00:28:24 (4 years ago)
Author:
rboren
Message:

Rework query precedence for bug 541. Add is_trackback().

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/wp-blog-header.php

    r1923 r1972  
    108108} 
    109109 
    110 if (1 == $tb) { 
     110if (is_trackback()) { 
    111111    $doing_trackback = true; 
    112112} 
     
    211211        do_action('template_redirect', ''); 
    212212        if (is_feed()) { 
    213             $wp_did_template_redirect = true; 
    214213            include(dirname(__FILE__) . '/wp-feed.php'); 
    215214            exit; 
    216         } else if ($tb == 1) { 
    217             $wp_did_template_redirect = true; 
     215        } else if (is_trackback()) { 
    218216            include(dirname(__FILE__) . '/wp-trackback.php'); 
    219217            exit; 
    220218        } else if (is_404() && 
    221219                             file_exists("$wp_template_dir/404.php")) { 
    222             $wp_did_template_redirect = true; 
    223220            include("$wp_template_dir/404.php"); 
    224221            exit; 
    225222        } else if (is_home() &&  
    226223                file_exists("$wp_template_dir/index.php")) { 
    227             $wp_did_template_redirect = true; 
    228224            include("$wp_template_dir/index.php"); 
    229225            exit; 
    230226        } else if (is_single() && 
    231227                             file_exists("$wp_template_dir/single.php")) { 
    232             $wp_did_template_redirect = true; 
    233228            include("$wp_template_dir/single.php"); 
    234229            exit; 
    235230        } else if (is_page() && file_exists(get_page_template())) { 
    236             $wp_did_template_redirect = true; 
    237231            include(get_page_template()); 
    238232            exit; 
    239233        } else if (is_category() && 
    240234                             file_exists("$wp_template_dir/category.php")) { 
    241             $wp_did_template_redirect = true; 
    242235            include("$wp_template_dir/category.php"); 
    243236            exit; 
    244237        } else if (is_author() && 
    245238                             file_exists("$wp_template_dir/author.php")) { 
    246             $wp_did_template_redirect = true; 
    247239            include("$wp_template_dir/author.php"); 
    248240            exit; 
    249241        } else if (is_date() && 
    250242                             file_exists("$wp_template_dir/date.php")) { 
    251             $wp_did_date = true; 
    252             $wp_did_template_redirect = true; 
    253243            include("$wp_template_dir/date.php"); 
    254244            exit; 
    255245        } else if (is_archive() && 
    256246                             file_exists("$wp_template_dir/archive.php")) { 
    257             $wp_did_template_redirect = true; 
    258247            include("$wp_template_dir/archive.php"); 
    259248            exit; 
    260249        } else if (is_search() && 
    261250                             file_exists("$wp_template_dir/search.php")) { 
    262             $wp_did_template_redirect = true; 
    263251            include("$wp_template_dir/search.php"); 
    264252            exit; 
    265253        } else if (is_paged() && 
    266254                             file_exists("$wp_template_dir/paged.php")) { 
    267             $wp_did_template_redirect = true; 
    268255            include("$wp_template_dir/paged.php"); 
    269256            exit; 
    270257        } else if (file_exists("$wp_template_dir/index.php")) 
    271258            { 
    272                 $wp_did_template_redirect = true; 
    273259                include("$wp_template_dir/index.php"); 
    274260                exit; 
  • trunk/wp-includes/classes.php

    r1959 r1972  
    2424    var $is_search = false; 
    2525    var $is_feed = false; 
     26    var $is_trackback = false; 
    2627    var $is_home = false; 
    2728    var $is_404 = false; 
     
    4041        $this->is_search = false; 
    4142        $this->is_feed = false; 
     43        $this->is_trackback = false; 
    4244        $this->is_home = false; 
    4345        $this->is_404 = false; 
     
    6264        if ('' != $qv['name']) { 
    6365            $this->is_single = true; 
    64         } 
    65  
    66         if (($qv['p'] != '') && ($qv['p'] != 'all')) { 
     66        } else  if (($qv['p'] != '') && ($qv['p'] != 'all')) { 
    6767            $this->is_single = true;             
    68         } 
    69  
    70         if ('' != $qv['static'] || '' != $qv['pagename'] || '' != $qv['page_id']) { 
     68        }   else if (('' != $qv['hour']) && ('' != $qv['minute']) &&('' != $qv['second']) && ('' != $qv['year']) && ('' != $qv['monthnum']) && ('' != $qv['day'])) { 
     69            // If year, month, day, hour, minute, and second are set, a single  
     70          // post is being queried.         
     71            $this->is_single = true; 
     72        } else if ('' != $qv['static'] || '' != $qv['pagename'] || '' != $qv['page_id']) { 
    7173            $this->is_page = true; 
    7274            $this->is_single = false; 
    73         } 
    74  
    75         if ( (int) $qv['second']) { 
    76             $this->is_time = true; 
    77             $this->is_date = true; 
    78         } 
    79  
    80         if ( (int) $qv['minute']) { 
    81             $this->is_time = true; 
    82             $this->is_date = true; 
    83         } 
    84  
    85         if ( (int) $qv['hour']) { 
    86             $this->is_time = true; 
    87             $this->is_date = true; 
    88         } 
    89  
    90         if ( (int) $qv['day']) { 
    91             if (! $this->is_date) { 
    92                 $this->is_day = true; 
     75        } else if (!empty($qv['s'])) { 
     76            $this->is_search = true; 
     77        } else { 
     78            // Look for archive queries.  Dates, categories, authors. 
     79 
     80            if ( (int) $qv['second']) { 
     81                $this->is_time = true; 
    9382                $this->is_date = true; 
    9483            } 
    95         } 
    96  
    97         if ( (int)  $qv['monthnum']) { 
    98             if (! $this->is_date) { 
    99                 $this->is_month = true; 
     84 
     85            if ( (int) $qv['minute']) { 
     86                $this->is_time = true; 
    10087                $this->is_date = true; 
    10188            } 
    102         } 
    103  
    104         if ( (int)  $qv['year']) { 
    105             if (! $this->is_date) { 
    106                 $this->is_year = true; 
     89 
     90            if ( (int) $qv['hour']) { 
     91                $this->is_time = true; 
    10792                $this->is_date = true; 
    10893            } 
    109         } 
    110  
    111         if ( (int)  $qv['m']) { 
    112             $this->is_date = true; 
    113             if (strlen($qv['m']) > 9) { 
    114                 $this->is_time = true; 
    115             } else if (strlen($qv['m']) > 7) { 
    116                 $this->is_day = true; 
    117             } else if (strlen($qv['m']) > 5) { 
    118                 $this->is_month = true; 
    119             } else { 
    120                 $this->is_year = true; 
    121             } 
    122         } 
    123  
    124         if ('' != $qv['w']) { 
    125             $this->is_date = true; 
    126         } 
    127  
    128         // If year, month, day, hour, minute, and second are set, a single  
    129         // post is being queried.         
    130         if (('' != $qv['hour']) && ('' != $qv['minute']) &&('' != $qv['second']) && ('' != $qv['year']) && ('' != $qv['monthnum']) && ('' != $qv['day'])) { 
    131             $this->is_single = true; 
    132         } 
    133  
    134         if (!empty($qv['s'])) { 
    135             $this->is_search = true; 
    136         } 
    137  
    138         if (empty($qv['cat']) || ($qv['cat'] == 'all') || ($qv['cat'] == '0')) { 
    139             $this->is_category = false; 
    140         } else { 
    141             if (stristr($qv['cat'],'-')) { 
     94 
     95            if ( (int) $qv['day']) { 
     96                if (! $this->is_date) { 
     97                    $this->is_day = true; 
     98                    $this->is_date = true; 
     99                } 
     100            } 
     101 
     102            if ( (int)  $qv['monthnum']) { 
     103                if (! $this->is_date) { 
     104                    $this->is_month = true; 
     105                    $this->is_date = true; 
     106                } 
     107            } 
     108 
     109            if ( (int)  $qv['year']) { 
     110                if (! $this->is_date) { 
     111                    $this->is_year = true; 
     112                    $this->is_date = true; 
     113                } 
     114            } 
     115 
     116            if ( (int)  $qv['m']) { 
     117                $this->is_date = true; 
     118                if (strlen($qv['m']) > 9) { 
     119                    $this->is_time = true; 
     120                } else if (strlen($qv['m']) > 7) { 
     121                    $this->is_day = true; 
     122                } else if (strlen($qv['m']) > 5) { 
     123                    $this->is_month = true; 
     124                } else { 
     125                    $this->is_year = true; 
     126                } 
     127            } 
     128 
     129            if ('' != $qv['w']) { 
     130                $this->is_date = true; 
     131            } 
     132 
     133            if (empty($qv['cat']) || ($qv['cat'] == 'all') || ($qv['cat'] == '0')) { 
    142134                $this->is_category = false; 
    143135            } else { 
     136                if (stristr($qv['cat'],'-')) { 
     137                    $this->is_category = false; 
     138                } else { 
     139                    $this->is_category = true; 
     140                } 
     141            } 
     142 
     143            if ('' != $qv['category_name']) { 
    144144                $this->is_category = true; 
    145145            } 
    146         } 
    147  
    148         if ('' != $qv['category_name']) { 
    149             $this->is_category = true; 
    150         } 
    151146             
    152         // single, page, date, and search override category. 
    153         if ($this->is_single || $this->is_page || $this->is_date || $this->is_search) { 
    154             $this->is_category = false;                 
    155         } 
    156  
    157         if ((empty($qv['author'])) || ($qv['author'] == 'all') || ($qv['author'] == '0')) { 
    158             $this->is_author = false; 
    159         } else { 
    160             $this->is_author = true; 
    161         } 
    162  
    163         if ('' != $qv['author_name']) { 
    164             $this->is_author = true; 
     147           if ((empty($qv['author'])) || ($qv['author'] == 'all') || ($qv['author'] == '0')) { 
     148               $this->is_author = false; 
     149            } else { 
     150               $this->is_author = true; 
     151            } 
     152 
     153            if ('' != $qv['author_name']) { 
     154               $this->is_author = true; 
     155            } 
     156 
     157            if ( ($this->is_date || $this->is_author || $this->is_category)) { 
     158               $this->is_archive = true; 
     159            } 
    165160        } 
    166161 
     
    169164        } 
    170165 
     166        if ('' != $qv['tb']) { 
     167            $this->is_trackback = true; 
     168        } 
     169 
    171170        if ('404' == $qv['error']) { 
    172171            $this->is_404 = true; 
     
    177176        } 
    178177 
    179         if ( ($this->is_date || $this->is_author || $this->is_category) 
    180                  && (! ($this->is_single || $this->is_page)) ) { 
    181             $this->is_archive = true; 
    182         } 
    183  
    184         if ( ! ($this->is_archive || $this->is_single || $this->is_page || $this->is_search || $this->is_feed || $this->is_404)) { 
     178        if ( ! ($this->is_archive || $this->is_single || $this->is_page || $this->is_search || $this->is_feed || $this->is_trackback || $this->is_404)) { 
    185179            $this->is_home = true; 
    186180        } 
     
    900894    } 
    901895 
    902     function generate_rewrite_rules($permalink_structure = '', $page = true, $feed = true, $forcomments = false) { 
     896    function generate_rewrite_rules($permalink_structure, $page = true, $feed = true, $forcomments = false, $walk_dirs = true) { 
    903897        $feedregex2 = '(feed|rdf|rss|rss2|atom)/?$'; 
    904898        $feedregex = 'feed/' . $feedregex2; 
  • trunk/wp-includes/functions.php

    r1964 r1972  
    11961196} 
    11971197 
     1198function is_trackback () { 
     1199    global $wp_query; 
     1200 
     1201    return $wp_query->is_trackback; 
     1202} 
     1203 
    11981204function is_home () { 
    11991205    global $wp_query;