Changeset 2627

Show
Ignore:
Timestamp:
06/10/05 23:15:13 (3 years ago)
Author:
ryan
Message:

Break blog header up into functional chunks. Stick it all in a WP class for now. Make wp() the front door. Move template/theme loader code into template-loader.php. Clean up feed file loadup. Modularize.

Files:

Legend:

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

    r2625 r2627  
    11<?php 
    22 
    3 if (empty($feed)) { 
    4     $blog = 1; 
    5         $feed = 'atom'; 
    6     $doing_rss = 1; 
    7     require('wp-blog-header.php'); 
     3if (empty($wp)) { 
     4    require_once('wp-config.php'); 
     5    wp('feed=atom'); 
    86} 
    97 
  • trunk/wp-blog-header.php

    r2623 r2627  
    1212require_once( dirname(__FILE__) . '/wp-config.php'); 
    1313 
    14 $query_vars = array(); 
     14wp(); 
     15gzip_compression(); 
    1516 
    16 // Process PATH_INFO and 404. 
    17 if ((isset($_GET['error']) && $_GET['error'] == '404') || 
    18         ((! empty($_SERVER['PATH_INFO'])) && 
    19         ('/' != $_SERVER['PATH_INFO']) && 
    20          (false === strpos($_SERVER['PATH_INFO'], '.php')) 
    21         )) { 
    22  
    23     // If we match a rewrite rule, this will be cleared. 
    24     $error = '404'; 
    25  
    26     // Fetch the rewrite rules. 
    27     $rewrite = $wp_rewrite->wp_rewrite_rules(); 
    28  
    29     if (! empty($rewrite)) { 
    30         $pathinfo = $_SERVER['PATH_INFO']; 
    31         $req_uri = $_SERVER['REQUEST_URI'];       
    32         $home_path = parse_url(get_settings('home')); 
    33         $home_path = $home_path['path']; 
    34  
    35         // Trim path info from the end and the leading home path from the 
    36         // front.  For path info requests, this leaves us with the requesting 
    37         // filename, if any.  For 404 requests, this leaves us with the 
    38         // requested permalink.  
    39         $req_uri = str_replace($pathinfo, '', $req_uri); 
    40         $req_uri = str_replace($home_path, '', $req_uri); 
    41         $req_uri = trim($req_uri, '/'); 
    42         $pathinfo = trim($pathinfo, '/'); 
    43  
    44         // The requested permalink is in $pathinfo for path info requests and 
    45         //  $req_uri for other requests. 
    46         if (! empty($pathinfo)) { 
    47             $request = $pathinfo; 
    48         } else { 
    49             $request = $req_uri; 
    50         } 
    51  
    52         // Look for matches. 
    53         $request_match = $request; 
    54         foreach ($rewrite as $match => $query) { 
    55             // If the requesting file is the anchor of the match, prepend it 
    56             // to the path info. 
    57         if ((! empty($req_uri)) && (strpos($match, $req_uri) === 0)) { 
    58           $request_match = $req_uri . '/' . $request; 
    59         } 
    60  
    61             if (preg_match("!^$match!", $request_match, $matches)) { 
    62                 // Got a match. 
    63                 // Trim the query of everything up to the '?'. 
    64                 $query = preg_replace("!^.+\?!", '', $query); 
    65  
    66                 // Substitute the substring matches into the query. 
    67                 eval("\$query = \"$query\";"); 
    68  
    69                 // Parse the query. 
    70                 parse_str($query, $query_vars); 
    71  
    72                 // If we're processing a 404 request, clear the error var 
    73                 // since we found something. 
    74                 if (isset($_GET['error'])) { 
    75                     unset($_GET['error']); 
    76                 } 
    77  
    78                 if (isset($error)) { 
    79                     unset($error); 
    80                 } 
    81  
    82                 break; 
    83             } 
    84         } 
    85     } 
    86  } 
    87  
    88 $wpvarstoreset = array('m','p','posts','w', 'cat','withcomments','s','search','exact', 'sentence', 'debug', 'calendar','page','paged','more','tb', 'pb','author','order','orderby', 'year', 'monthnum', 'day', 'hour', 'minute', 'second', 'name', 'category_name', 'feed', 'author_name', 'static', 'pagename', 'page_id', 'error', 'comments_popup'); 
    89  
    90 $wpvarstoreset = apply_filters('query_vars', $wpvarstoreset); 
    91  
    92 for ($i=0; $i<count($wpvarstoreset); $i += 1) { 
    93     $wpvar = $wpvarstoreset[$i]; 
    94     if (!isset($$wpvar)) { 
    95         if (empty($_POST[$wpvar])) { 
    96             if (empty($_GET[$wpvar]) && empty($query_vars[$wpvar])) { 
    97                 $$wpvar = ''; 
    98             } elseif (!empty($_GET[$wpvar])) { 
    99                 $$wpvar = $_GET[$wpvar]; 
    100             } else { 
    101                 $$wpvar = $query_vars[$wpvar]; 
    102             } 
    103         } else { 
    104             $$wpvar = $_POST[$wpvar]; 
    105         } 
    106     } 
    107 
    108  
    109 // Sending HTTP headers 
    110 @header('X-Pingback: '. get_bloginfo('pingback_url')); 
    111  
    112 if ( !empty($error) && '404' == $error ) { 
    113     status_header( 404 ); 
    114  } else if ( empty($feed) ) { 
    115     @header('Content-type: ' . get_option('html_type') . '; charset=' . get_option('blog_charset')); 
    116 } else { 
    117     // We're showing a feed, so WP is indeed the only thing that last changed 
    118     if ( $withcomments ) 
    119         $wp_last_modified = mysql2date('D, d M Y H:i:s', get_lastcommentmodified('GMT'), 0).' GMT'; 
    120     else  
    121         $wp_last_modified = mysql2date('D, d M Y H:i:s', get_lastpostmodified('GMT'), 0).' GMT'; 
    122     $wp_etag = '"' . md5($wp_last_modified) . '"'; 
    123     @header("Last-Modified: $wp_last_modified"); 
    124     @header("ETag: $wp_etag"); 
    125  
    126     // Support for Conditional GET 
    127     if (isset($_SERVER['HTTP_IF_NONE_MATCH'])) $client_etag = stripslashes($_SERVER['HTTP_IF_NONE_MATCH']); 
    128     else $client_etag = false; 
    129  
    130     $client_last_modified = trim( $_SERVER['HTTP_IF_MODIFIED_SINCE']); 
    131     // If string is empty, return 0. If not, attempt to parse into a timestamp 
    132     $client_modified_timestamp = $client_last_modified ? strtotime($client_last_modified) : 0; 
    133  
    134     // Make a timestamp for our most recent modification...  
    135     $wp_modified_timestamp = strtotime($wp_last_modified); 
    136  
    137     if ( ($client_last_modified && $client_etag) ? 
    138         (($client_modified_timestamp >= $wp_modified_timestamp) && ($client_etag == $wp_etag)) : 
    139         (($client_modified_timestamp >= $wp_modified_timestamp) || ($client_etag == $wp_etag)) ) { 
    140         status_header( 304 ); 
    141         exit; 
    142     } 
    143 
    144  
    145 $use_gzipcompression = get_settings('gzipcompression'); 
    146  
    147 $more_wpvars = array('posts_per_page', 'posts_per_archive_page', 'what_to_show', 'showposts', 'nopaging'); 
    148  
    149 // Construct the query string. 
    150 $query_string = ''; 
    151 foreach (array_merge($wpvarstoreset, $more_wpvars) as $wpvar) { 
    152     if ($$wpvar != '') { 
    153         $query_string .= (strlen($query_string) < 1) ? '' : '&'; 
    154         $query_string .= $wpvar . '=' . rawurlencode($$wpvar); 
    155     } 
    156 
    157  
    158 $query_string = apply_filters('query_string', $query_string); 
    159  
    160 update_category_cache(); 
    161 get_currentuserinfo(); 
    162  
    163 // Call query posts to do the work. 
    164 $posts = & query_posts($query_string); 
    165  
    166 // Extract updated query vars back into global namespace. 
    167 extract($wp_query->query_vars); 
    168  
    169 if ( is_single() || is_page() ) { 
    170     $more = 1; 
    171     $single = 1; 
    172 
    173  
    174 // Issue a 404 if a permalink request doesn't match any posts.  Don't issue a 
    175 // 404 if one was already issued, if the request was a search, or if the 
    176 // request was a regular query string request rather than a permalink request. 
    177 if ( (0 == count($posts)) && !is_404() && !is_search() 
    178         && ( isset($rewrite) || (!empty($_SERVER['QUERY_STRING']) && 
    179         (false === strpos($_SERVER['REQUEST_URI'], '?'))) ) ) { 
    180     $wp_query->is_404 = true; 
    181     status_header( 404 ); 
    182 } else { 
    183     status_header( 200 ); 
    184 
    185  
    186 if ($pagenow != 'post.php' && $pagenow != 'edit.php') { 
    187     if ( get_settings('gzipcompression') )  
    188         gzip_compression(); 
    189 
    190  
    191 // Template redirection 
    192 if ( defined('WP_USE_THEMES') && constant('WP_USE_THEMES') ) { 
    193     do_action('template_redirect'); 
    194     if ( is_feed() && empty($doing_rss) ) { 
    195         include(ABSPATH . '/wp-feed.php'); 
    196         exit; 
    197     } else if ( is_trackback() && empty($doing_trackback) ) { 
    198         include(ABSPATH . '/wp-trackback.php'); 
    199         exit; 
    200     } else if ( is_404() && get_404_template() ) { 
    201         include(get_404_template()); 
    202         exit; 
    203     } else if ( is_search() && get_search_template() ) { 
    204         include(get_search_template()); 
    205         exit; 
    206     } else if ( is_home() && get_home_template() ) { 
    207         include(get_home_template()); 
    208         exit; 
    209     } else if ( is_single() && get_single_template() ) { 
    210         include(get_single_template()); 
    211         exit; 
    212     } else if ( is_page() && get_page_template() ) { 
    213         include(get_page_template()); 
    214         exit; 
    215     } else if ( is_category() && get_category_template()) { 
    216         include(get_category_template()); 
    217         exit;        
    218     } else if ( is_author() && get_author_template() ) { 
    219         include(get_author_template()); 
    220         exit; 
    221     } else if ( is_date() && get_date_template() ) { 
    222         include(get_date_template()); 
    223         exit; 
    224     } else if ( is_archive() && get_archive_template() ) { 
    225         include(get_archive_template()); 
    226         exit; 
    227     } else if ( is_comments_popup() && get_comments_popup_template() ) { 
    228         include(get_comments_popup_template()); 
    229         exit; 
    230     } else if ( is_paged() && get_paged_template() ) { 
    231         include(get_paged_template()); 
    232         exit; 
    233     } else if ( file_exists(TEMPLATEPATH . "/index.php") ) { 
    234         include(TEMPLATEPATH . "/index.php"); 
    235         exit; 
    236     } 
    237 } else { 
    238     // Process feeds and trackbacks even if not using themes. 
    239     if ( is_feed() && empty($doing_rss) ) { 
    240         include(ABSPATH . '/wp-feed.php'); 
    241         exit; 
    242     } else if ( is_trackback() && empty($doing_trackback) ) { 
    243         include(ABSPATH . '/wp-trackback.php'); 
    244         exit; 
    245     } 
    246 
     17require_once(ABSPATH . WPINC . '/template-loader.php'); 
    24718 
    24819endif; 
  • trunk/wp-commentsrss2.php

    r2543 r2627  
    11<?php  
    2 if ( empty($feed) ) { 
    3     $feed = 'rss2'; 
    4     $withcomments = 1; 
    5     $doing_rss = 1; 
    6     require('wp-blog-header.php'); 
     2 
     3if (empty($wp)) { 
     4    require_once('wp-config.php'); 
     5    wp('feed=rss2&withcomments=1'); 
    76} 
    87 
  • trunk/wp-includes/classes.php

    r2535 r2627  
    662662        } 
    663663    } 
    664 } 
    665  
    666 // Make a global instance. 
    667 if (! isset($wp_query)) { 
    668     $wp_query = new WP_Query(); 
    669664} 
    670665 
     
    12921287} 
    12931288 
    1294 // Make a global instance. 
    1295 if (! isset($wp_rewrite)) { 
    1296     $wp_rewrite = new WP_Rewrite(); 
     1289class WP { 
     1290    var $public_query_vars = array('m','p','posts','w', 'cat','withcomments','s','search','exact', 'sentence', 'debug', 'calendar','page','paged','more','tb', 'pb','author','order','orderby', 'year', 'monthnum', 'day', 'hour', 'minute', 'second', 'name', 'category_name', 'feed', 'author_name', 'static', 'pagename', 'page_id', 'error', 'comments_popup'); 
     1291 
     1292    var $private_query_vars = array('posts_per_page', 'posts_per_archive_page', 'what_to_show', 'showposts', 'nopaging'); 
     1293 
     1294    var $query_vars; 
     1295    var $query_string; 
     1296    var $did_permalink = false; 
     1297 
     1298    function parse_request($extra_query_vars = '') { 
     1299        global $wp_rewrite; 
     1300 
     1301        $this->query_vars = array(); 
     1302 
     1303        if (! empty($extra_query_vars)) 
     1304            parse_str($extra_query_vars, $extra_query_vars); 
     1305 
     1306        // Process PATH_INFO and 404. 
     1307        if ((isset($_GET['error']) && $_GET['error'] == '404') || 
     1308                ((! empty($_SERVER['PATH_INFO'])) && 
     1309                 ('/' != $_SERVER['PATH_INFO']) && 
     1310                 (false === strpos($_SERVER['PATH_INFO'], '.php')) 
     1311                 )) { 
     1312 
     1313            $this->did_permalink = true; 
     1314 
     1315            // If we match a rewrite rule, this will be cleared. 
     1316            $error = '404'; 
     1317 
     1318            // Fetch the rewrite rules. 
     1319            $rewrite = $wp_rewrite->wp_rewrite_rules(); 
     1320 
     1321            if (! empty($rewrite)) { 
     1322                $pathinfo = $_SERVER['PATH_INFO']; 
     1323                $req_uri = $_SERVER['REQUEST_URI'];       
     1324                $home_path = parse_url(get_settings('home')); 
     1325                $home_path = $home_path['path']; 
     1326 
     1327                // Trim path info from the end and the leading home path from the 
     1328                // front.  For path info requests, this leaves us with the requesting 
     1329                // filename, if any.  For 404 requests, this leaves us with the 
     1330                // requested permalink.  
     1331                $req_uri = str_replace($pathinfo, '', $req_uri); 
     1332                $req_uri = str_replace($home_path, '', $req_uri); 
     1333                $req_uri = trim($req_uri, '/'); 
     1334                $pathinfo = trim($pathinfo, '/'); 
     1335 
     1336                // The requested permalink is in $pathinfo for path info requests and 
     1337                //  $req_uri for other requests. 
     1338                if (! empty($pathinfo)) { 
     1339                    $request = $pathinfo; 
     1340                } else { 
     1341                    $request = $req_uri; 
     1342                } 
     1343 
     1344                // Look for matches. 
     1345                $request_match = $request; 
     1346                foreach ($rewrite as $match => $query) { 
     1347                    // If the requesting file is the anchor of the match, prepend it 
     1348                    // to the path info. 
     1349                    if ((! empty($req_uri)) && (strpos($match, $req_uri) === 0)) { 
     1350                        $request_match = $req_uri . '/' . $request; 
     1351                    } 
     1352 
     1353                    if (preg_match("!^$match!", $request_match, $matches)) { 
     1354                        // Got a match. 
     1355                        // Trim the query of everything up to the '?'. 
     1356                        $query = preg_replace("!^.+\?!", '', $query); 
     1357 
     1358                        // Substitute the substring matches into the query. 
     1359                        eval("\$query = \"$query\";"); 
     1360 
     1361                        // Parse the query. 
     1362                        parse_str($query, $query_vars); 
     1363 
     1364                        // If we're processing a 404 request, clear the error var 
     1365                        // since we found something. 
     1366                        if (isset($_GET['error'])) { 
     1367                            unset($_GET['error']); 
     1368                        } 
     1369 
     1370                        if (isset($error)) { 
     1371                            unset($error); 
     1372                        } 
     1373 
     1374                        break; 
     1375                    } 
     1376                } 
     1377            } 
     1378        } 
     1379 
     1380        $this->public_query_vars = apply_filters('query_vars', $this->public_query_vars); 
     1381 
     1382        for ($i=0; $i<count($this->public_query_vars); $i += 1) { 
     1383            $wpvar = $this->public_query_vars[$i]; 
     1384            if (isset($extra_query_vars[$wpvar])) 
     1385                $this->query_vars[$wpvar] = $extra_query_vars[$wpvar]; 
     1386            elseif (isset($GLOBALS[$wpvar])) 
     1387                $this->query_vars[$wpvar] = $GLOBALS[$wpvar]; 
     1388            elseif (!empty($_POST[$wpvar])) 
     1389                $this->query_vars[$wpvar] = $_POST[$wpvar]; 
     1390            elseif (!empty($_GET[$wpvar])) 
     1391                $this->query_vars[$wpvar] = $_GET[$wpvar]; 
     1392            elseif (!empty($query_vars[$wpvar])) 
     1393                $this->query_vars[$wpvar] = $query_vars[$wpvar]; 
     1394            else 
     1395                $this->query_vars[$wpvar] = ''; 
     1396        } 
     1397    } 
     1398 
     1399    function send_headers() { 
     1400        @header('X-Pingback: '. get_bloginfo('pingback_url')); 
     1401        if ( !empty($this->query_vars['error']) && '404' == $this->query_vars['error'] ) { 
     1402            status_header( 404 ); 
     1403        } else if ( empty($this->query_vars['feed']) ) { 
     1404            @header('Content-type: ' . get_option('html_type') . '; charset=' . get_option('blog_charset')); 
     1405        } else { 
     1406            // We're showing a feed, so WP is indeed the only thing that last changed 
     1407            if ( $this->query_vars['withcomments'] ) 
     1408                $wp_last_modified = mysql2date('D, d M Y H:i:s', get_lastcommentmodified('GMT'), 0).' GMT'; 
     1409            else  
     1410                $wp_last_modified = mysql2date('D, d M Y H:i:s', get_lastpostmodified('GMT'), 0).' GMT'; 
     1411            $wp_etag = '"' . md5($wp_last_modified) . '"'; 
     1412            @header("Last-Modified: $wp_last_modified"); 
     1413            @header("ETag: $wp_etag"); 
     1414 
     1415            // Support for Conditional GET 
     1416            if (isset($_SERVER['HTTP_IF_NONE_MATCH'])) $client_etag = stripslashes($_SERVER['HTTP_IF_NONE_MATCH']); 
     1417            else $client_etag = false; 
     1418 
     1419            $client_last_modified = trim( $_SERVER['HTTP_IF_MODIFIED_SINCE']); 
     1420            // If string is empty, return 0. If not, attempt to parse into a timestamp 
     1421            $client_modified_timestamp = $client_last_modified ? strtotime($client_last_modified) : 0; 
     1422 
     1423            // Make a timestamp for our most recent modification...  
     1424            $wp_modified_timestamp = strtotime($wp_last_modified); 
     1425 
     1426            if ( ($client_last_modified && $client_etag) ? 
     1427                     (($client_modified_timestamp >= $wp_modified_timestamp) && ($client_etag == $wp_etag)) : 
     1428                     (($client_modified_timestamp >= $wp_modified_timestamp) || ($client_etag == $wp_etag)) ) { 
     1429                status_header( 304 ); 
     1430                exit; 
     1431            } 
     1432        } 
     1433    } 
     1434 
     1435    function build_query_string() { 
     1436        $this->query_string = ''; 
     1437 
     1438        foreach ($this->public_query_vars as $wpvar) { 
     1439            if (isset($this->query_vars[$wpvar]) && '' != $this->query_vars[$wpvar]) { 
     1440                $this->query_string .= (strlen($this->query_string) < 1) ? '' : '&'; 
     1441                $this->query_string .= $wpvar . '=' . rawurlencode($this->query_vars[$wpvar]); 
     1442            } 
     1443        } 
     1444 
     1445        foreach ($this->private_query_vars as $wpvar) { 
     1446            if (isset($GLOBALS[$wpvar]) && '' != $GLOBALS[$wpvar]) { 
     1447                $this->query_string .= (strlen($this->query_string) < 1) ? '' : '&'; 
     1448                $this->query_string .= $wpvar . '=' . rawurlencode($GLOBALS[$wpvar]); 
     1449            } 
     1450        } 
     1451 
     1452        $this->query_string = apply_filters('query_string', $this->query_string); 
     1453    } 
     1454 
     1455    function register_globals() { 
     1456        global $wp_query; 
     1457        // Extract updated query vars back into global namespace. 
     1458        foreach ($wp_query->query_vars as $key => $value) { 
     1459            $GLOBALS[$key] = $value; 
     1460        } 
     1461 
     1462        $GLOBALS['query_string'] = & $this->query_string; 
     1463        $GLOBALS['posts'] = & $wp_query->posts; 
     1464        $GLOBALS['post'] = & $wp_query->post; 
     1465 
     1466        if ( is_single() || is_page() ) { 
     1467            $GLOBALS['more'] = 1; 
     1468            $GLOBALS['single'] = 1; 
     1469        } 
     1470    } 
     1471 
     1472    function prime_caches() { 
     1473        update_category_cache(); 
     1474        get_currentuserinfo(); 
     1475    } 
     1476 
     1477    function query_posts() { 
     1478        $this->build_query_string(); 
     1479        query_posts($this->query_string); 
     1480    } 
     1481 
     1482    function handle_404() { 
     1483        global $wp_query; 
     1484        // Issue a 404 if a permalink request doesn't match any posts.  Don't 
     1485        // issue a 404 if one was already issued, if the request was a search, 
     1486        // or if the request was a regular query string request rather than a 
     1487        // permalink request. 
     1488        if ( (0 == count($wp_query->posts)) && !is_404() && !is_search() 
     1489                 && ( $this->did_permalink || (!empty($_SERVER['QUERY_STRING']) && 
     1490                                                                    (false === strpos($_SERVER['REQUEST_URI'], '?'))) ) ) { 
     1491            $wp_query->is_404 = true; 
     1492            status_header( 404 ); 
     1493        }   else { 
     1494            status_header( 200 ); 
     1495        } 
     1496    } 
     1497 
     1498    function main($query_args = '') { 
     1499        $this->parse_request($query_args); 
     1500        $this->send_headers(); 
     1501        $this->prime_caches(); 
     1502        $this->query_posts(); 
     1503        $this->handle_404(); 
     1504        $this->register_globals(); 
     1505    } 
     1506 
     1507    function WP() { 
     1508        // Empty. 
     1509    } 
    12971510} 
    12981511 
  • trunk/wp-includes/functions.php

    r2623 r2627  
    18501850} 
    18511851 
     1852function wp($query_vars = '') { 
     1853    global $wp; 
     1854    $wp->main($query_vars); 
     1855} 
     1856 
    18521857function status_header( $header ) { 
    18531858    if ( 200 == $header ) { 
  • trunk/wp-rdf.php

    r2625 r2627  
    11<?php /* RDF 1.0 generator, original version by garym@teledyn.com */ 
    22 
    3 if (empty($feed)) { 
    4     $blog = 1; // enter your blog's ID 
    5         $feed = 'rdf'; 
    6     $doing_rss = 1; 
    7     require('wp-blog-header.php'); 
     3if (empty($wp)) { 
     4    require_once('wp-config.php'); 
     5    wp('feed=rdf'); 
    86} 
    97 
  • trunk/wp-rss.php

    r2625 r2627  
    11<?php 
    22 
    3 if (empty($feed)) { 
    4     $blog = 1; 
    5         $feed = 'rss'; 
    6     $doing_rss = 1; 
    7     require('wp-blog-header.php'); 
     3if (empty($wp)) { 
     4    require_once('wp-config.php'); 
     5    wp('feed=rss'); 
    86} 
    97 
  • trunk/wp-rss2.php

    r2625 r2627  
    11<?php 
    22 
    3 if (empty($feed)) { 
    4     $blog = 1; 
    5     $feed = 'rss2'; 
    6     $doing_rss = 1; 
    7     require('wp-blog-header.php'); 
     3if (empty($wp)) { 
     4    require_once('wp-config.php'); 
     5    wp('feed=rss2'); 
    86} 
    97 
  • trunk/wp-settings.php

    r2516 r2627  
    146146register_shutdown_function('shutdown_action_hook'); 
    147147 
    148 // Everything is loaded. 
     148$wp_query = new WP_Query(); 
     149$wp_rewrite = new WP_Rewrite(); 
     150$wp = new WP(); 
     151 
     152// Everything is loaded and initialized. 
    149153do_action('init'); 
    150154?> 
  • trunk/wp-trackback.php

    r2563 r2627  
    11<?php 
    2 require_once( dirname(__FILE__) . '/wp-config.php' ); 
    32 
    4 if ( empty($doing_trackback) ) { 
    5     $doing_trackback = true; 
    6     $tb = true; 
    7     require_once('wp-blog-header.php'); 
     3if (empty($wp)) { 
     4    require_once('wp-config.php'); 
     5    wp('tb=1'); 
    86} 
    97