Make WordPress Core


Ignore:
Timestamp:
01/15/2010 10:03:41 PM (15 years ago)
Author:
ryan
Message:

Cleanup wp-settings. Move functions needed at startup into load.php. Props nacin. see #11881

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-settings.php

    r12713 r12732  
    44 * the WordPress procedural and class library.
    55 *
    6  * You should not have to change this file and allows
    7  * for some configuration in wp-config.php.
     6 * Allows for some configuration in wp-config.php (see default-constants.php)
    87 *
    98 * @package WordPress
    109 */
    11 
    12 
    13 /**
    14  * Whether Multisite support is enabled
    15  *
    16  * @since 3.0
    17  *
    18  * @return bool True if multisite is enabled, false otherwise.
    19  */
    20 function is_multisite() {
    21     if ( ( defined('MULTISITE') && MULTISITE ) || defined('VHOST') || defined('SUNRISE') )
    22         return true;
    23 
    24     return false;
    25 }
    26 
    27 if ( !defined('WP_MEMORY_LIMIT') ) {
    28         if( is_multisite() ) {
    29             define('WP_MEMORY_LIMIT', '64M');
    30         } else {
    31             define('WP_MEMORY_LIMIT', '32M');
    32         }
    33 }
    34 
    35 if ( function_exists('memory_get_usage') && ( (int) @ini_get('memory_limit') < abs(intval(WP_MEMORY_LIMIT)) ) )
    36     @ini_set('memory_limit', WP_MEMORY_LIMIT);
    37 
    38 set_magic_quotes_runtime(0);
    39 @ini_set('magic_quotes_sybase', 0);
    40 
    41 if ( function_exists('date_default_timezone_set') )
    42     date_default_timezone_set('UTC');
    43 
    44 /**
    45  * Turn register globals off.
    46  *
    47  * @access private
    48  * @since 2.1.0
    49  * @return null Will return null if register_globals PHP directive was disabled
    50  */
    51 function wp_unregister_GLOBALS() {
    52     if ( !ini_get('register_globals') )
    53         return;
    54 
    55     if ( isset($_REQUEST['GLOBALS']) )
    56         die('GLOBALS overwrite attempt detected');
    57 
    58     // Variables that shouldn't be unset
    59     $noUnset = array('GLOBALS', '_GET', '_POST', '_COOKIE', '_REQUEST', '_SERVER', '_ENV', '_FILES', 'table_prefix');
    60 
    61     $input = array_merge($_GET, $_POST, $_COOKIE, $_SERVER, $_ENV, $_FILES, isset($_SESSION) && is_array($_SESSION) ? $_SESSION : array());
    62     foreach ( $input as $k => $v )
    63         if ( !in_array($k, $noUnset) && isset($GLOBALS[$k]) ) {
    64             $GLOBALS[$k] = NULL;
    65             unset($GLOBALS[$k]);
    66         }
    67 }
    68 
    69 wp_unregister_GLOBALS();
    70 
    71 unset( $wp_filter, $cache_lastcommentmodified, $cache_lastpostdate );
    72 
    73 /**
    74  * The $blog_id global, which you can change in the config allows you to create a simple
    75  * multiple blog installation using just one WordPress and changing $blog_id around.
    76  *
    77  * @global int $blog_id
    78  * @since 2.0.0
    79  */
    80 if ( ! isset($blog_id) )
    81     $blog_id = 1;
    82 
    83 // Fix for IIS when running with PHP ISAPI
    84 if ( empty( $_SERVER['REQUEST_URI'] ) || ( php_sapi_name() != 'cgi-fcgi' && preg_match( '/^Microsoft-IIS\//', $_SERVER['SERVER_SOFTWARE'] ) ) ) {
    85 
    86     // IIS Mod-Rewrite
    87     if (isset($_SERVER['HTTP_X_ORIGINAL_URL'])) {
    88         $_SERVER['REQUEST_URI'] = $_SERVER['HTTP_X_ORIGINAL_URL'];
    89     }
    90     // IIS Isapi_Rewrite
    91     else if (isset($_SERVER['HTTP_X_REWRITE_URL'])) {
    92         $_SERVER['REQUEST_URI'] = $_SERVER['HTTP_X_REWRITE_URL'];
    93     }
    94     else
    95     {
    96         // Use ORIG_PATH_INFO if there is no PATH_INFO
    97         if ( !isset($_SERVER['PATH_INFO']) && isset($_SERVER['ORIG_PATH_INFO']) )
    98             $_SERVER['PATH_INFO'] = $_SERVER['ORIG_PATH_INFO'];
    99 
    100         // Some IIS + PHP configurations puts the script-name in the path-info (No need to append it twice)
    101         if ( isset($_SERVER['PATH_INFO']) ) {
    102             if ( $_SERVER['PATH_INFO'] == $_SERVER['SCRIPT_NAME'] )
    103                 $_SERVER['REQUEST_URI'] = $_SERVER['PATH_INFO'];
    104             else
    105                 $_SERVER['REQUEST_URI'] = $_SERVER['SCRIPT_NAME'] . $_SERVER['PATH_INFO'];
    106         }
    107 
    108         // Append the query string if it exists and isn't null
    109         if (isset($_SERVER['QUERY_STRING']) && !empty($_SERVER['QUERY_STRING'])) {
    110             $_SERVER['REQUEST_URI'] .= '?' . $_SERVER['QUERY_STRING'];
    111         }
    112     }
    113 }
    114 
    115 // Fix for PHP as CGI hosts that set SCRIPT_FILENAME to something ending in php.cgi for all requests
    116 if ( isset($_SERVER['SCRIPT_FILENAME']) && ( strpos($_SERVER['SCRIPT_FILENAME'], 'php.cgi') == strlen($_SERVER['SCRIPT_FILENAME']) - 7 ) )
    117     $_SERVER['SCRIPT_FILENAME'] = $_SERVER['PATH_TRANSLATED'];
    118 
    119 // Fix for Dreamhost and other PHP as CGI hosts
    120 if (strpos($_SERVER['SCRIPT_NAME'], 'php.cgi') !== false)
    121     unset($_SERVER['PATH_INFO']);
    122 
    123 // Fix empty PHP_SELF
    124 $PHP_SELF = $_SERVER['PHP_SELF'];
    125 if ( empty($PHP_SELF) )
    126     $_SERVER['PHP_SELF'] = $PHP_SELF = preg_replace("/(\?.*)?$/",'',$_SERVER["REQUEST_URI"]);
    127 
    128 if ( version_compare( '4.3', phpversion(), '>' ) ) {
    129     die( sprintf( /*WP_I18N_OLD_PHP*/'Your server is running PHP version %s but WordPress requires at least 4.3.'/*/WP_I18N_OLD_PHP*/, phpversion() ) );
    130 }
    131 
    132 if ( !defined('WP_CONTENT_DIR') )
    133     define( 'WP_CONTENT_DIR', ABSPATH . 'wp-content' ); // no trailing slash, full paths only - WP_CONTENT_URL is defined further down
    134 
    135 if ( file_exists(ABSPATH . '.maintenance') && !defined('WP_INSTALLING') ) {
    136     include(ABSPATH . '.maintenance');
    137     // If the $upgrading timestamp is older than 10 minutes, don't die.
    138     if ( ( time() - $upgrading ) < 600 ) {
    139         if ( file_exists( WP_CONTENT_DIR . '/maintenance.php' ) ) {
    140             require_once( WP_CONTENT_DIR . '/maintenance.php' );
    141             die();
    142         }
    143 
    144         $protocol = $_SERVER["SERVER_PROTOCOL"];
    145         if ( 'HTTP/1.1' != $protocol && 'HTTP/1.0' != $protocol )
    146             $protocol = 'HTTP/1.0';
    147         header( "$protocol 503 Service Unavailable", true, 503 );
    148         header( 'Content-Type: text/html; charset=utf-8' );
    149         header( 'Retry-After: 600' );
    150 ?>
    151 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    152 <html xmlns="http://www.w3.org/1999/xhtml">
    153 <head>
    154 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    155     <title>Maintenance</title>
    156 
    157 </head>
    158 <body>
    159     <h1>Briefly unavailable for scheduled maintenance. Check back in a minute.</h1>
    160 </body>
    161 </html>
    162 <?php
    163         die();
    164     }
    165 }
    166 
    167 if ( !extension_loaded('mysql') && !file_exists(WP_CONTENT_DIR . '/db.php') )
    168     die( /*WP_I18N_OLD_MYSQL*/'Your PHP installation appears to be missing the MySQL extension which is required by WordPress.'/*/WP_I18N_OLD_MYSQL*/ );
    169 
    170 /**
    171  * PHP 4 standard microtime start capture.
    172  *
    173  * @access private
    174  * @since 0.71
    175  * @global int $timestart Seconds and Microseconds added together from when function is called.
    176  * @return bool Always returns true.
    177  */
    178 function timer_start() {
    179     global $timestart;
    180     $mtime = explode(' ', microtime() );
    181     $mtime = $mtime[1] + $mtime[0];
    182     $timestart = $mtime;
    183     return true;
    184 }
    185 
    186 /**
    187  * Return and/or display the time from the page start to when function is called.
    188  *
    189  * You can get the results and print them by doing:
    190  * <code>
    191  * $nTimePageTookToExecute = timer_stop();
    192  * echo $nTimePageTookToExecute;
    193  * </code>
    194  *
    195  * Or instead, you can do:
    196  * <code>
    197  * timer_stop(1);
    198  * </code>
    199  * which will do what the above does. If you need the result, you can assign it to a variable, but
    200  * most cases, you only need to echo it.
    201  *
    202  * @since 0.71
    203  * @global int $timestart Seconds and Microseconds added together from when timer_start() is called
    204  * @global int $timeend  Seconds and Microseconds added together from when function is called
    205  *
    206  * @param int $display Use '0' or null to not echo anything and 1 to echo the total time
    207  * @param int $precision The amount of digits from the right of the decimal to display. Default is 3.
    208  * @return float The "second.microsecond" finished time calculation
    209  */
    210 function timer_stop($display = 0, $precision = 3) { //if called like timer_stop(1), will echo $timetotal
    211     global $timestart, $timeend;
    212     $mtime = microtime();
    213     $mtime = explode(' ',$mtime);
    214     $mtime = $mtime[1] + $mtime[0];
    215     $timeend = $mtime;
    216     $timetotal = $timeend-$timestart;
    217     $r = ( function_exists('number_format_i18n') ) ? number_format_i18n($timetotal, $precision) : number_format($timetotal, $precision);
    218     if ( $display )
    219         echo $r;
    220     return $r;
    221 }
    222 timer_start();
    223 
    224 // Add define('WP_DEBUG', true); to wp-config.php to enable display of notices during development.
    225 if ( !defined('WP_DEBUG') )
    226     define( 'WP_DEBUG', false );
    227 
    228 if ( WP_DEBUG ) {
    229     if ( defined('E_DEPRECATED') )
    230         error_reporting(E_ALL & ~E_DEPRECATED & ~E_STRICT);
    231     else
    232         error_reporting(E_ALL);
    233     // Add define('WP_DEBUG_DISPLAY', false); to wp-config.php to use the globally configured setting for display_errors and not force it to On
    234     if ( ! defined('WP_DEBUG_DISPLAY') || WP_DEBUG_DISPLAY )
    235         ini_set('display_errors', 1);
    236     // Add define('WP_DEBUG_LOG', true); to enable php debug logging to WP_CONTENT_DIR/debug.log
    237     if ( defined('WP_DEBUG_LOG') && WP_DEBUG_LOG ) {
    238         ini_set('log_errors', 1);
    239         ini_set('error_log', WP_CONTENT_DIR . '/debug.log');
    240     }
    241 } else {
    242     if ( defined('E_RECOVERABLE_ERROR') )
    243         error_reporting(E_ERROR | E_WARNING | E_PARSE | E_USER_ERROR | E_USER_WARNING | E_RECOVERABLE_ERROR);
    244     else
    245         error_reporting(E_ERROR | E_WARNING | E_PARSE | E_USER_ERROR | E_USER_WARNING);
    246 }
    247 
    248 // For an advanced caching plugin to use, static because you would only want one
    249 if ( defined('WP_CACHE') && WP_CACHE )
    250     @include WP_CONTENT_DIR . '/advanced-cache.php';
    251 
    252 /**
    253  * Private
    254  */
    255 if ( !defined('MEDIA_TRASH') )
    256     define('MEDIA_TRASH', false);
    25710
    25811/**
     
    26316define('WPINC', 'wp-includes');
    26417
    265 if ( !defined('WP_LANG_DIR') ) {
    266     /**
    267      * Stores the location of the language directory. First looks for language folder in WP_CONTENT_DIR
    268      * and uses that folder if it exists. Or it uses the "languages" folder in WPINC.
    269      *
    270      * @since 2.1.0
    271      */
    272     if ( file_exists(WP_CONTENT_DIR . '/languages') && @is_dir(WP_CONTENT_DIR . '/languages') ) {
    273         define('WP_LANG_DIR', WP_CONTENT_DIR . '/languages'); // no leading slash, no trailing slash, full path, not relative to ABSPATH
    274         if (!defined('LANGDIR')) {
    275             // Old static relative path maintained for limited backwards compatibility - won't work in some cases
    276             define('LANGDIR', 'wp-content/languages');
    277         }
    278     } else {
    279         define('WP_LANG_DIR', ABSPATH . WPINC . '/languages'); // no leading slash, no trailing slash, full path, not relative to ABSPATH
    280         if (!defined('LANGDIR')) {
    281             // Old relative path maintained for backwards compatibility
    282             define('LANGDIR', WPINC . '/languages');
    283         }
    284     }
    285 }
     18require (ABSPATH . WPINC . '/load.php');
     19require (ABSPATH . WPINC . '/default-constants.php');
     20require (ABSPATH . WPINC . '/version.php');
     21
     22wp_default_constants('init');
     23
     24set_magic_quotes_runtime(0);
     25@ini_set('magic_quotes_sybase', 0);
     26
     27if ( function_exists('date_default_timezone_set') )
     28    date_default_timezone_set('UTC');
     29
     30wp_unregister_GLOBALS();
     31
     32unset( $wp_filter, $cache_lastcommentmodified, $cache_lastpostdate );
     33
     34wp_fix_server_vars();
     35
     36wp_check_php_mysql_versions();
     37
     38wp_maintenance();
     39
     40timer_start();
     41
     42wp_debug_mode();
     43
     44// For an advanced caching plugin to use, static because you would only want one
     45if ( WP_CACHE )
     46    @include WP_CONTENT_DIR . '/advanced-cache.php';
     47
     48wp_set_lang_dir();
    28649
    28750require (ABSPATH . WPINC . '/compat.php');
     
    29154require_wp_db();
    29255
    293 if ( !empty($wpdb->error) )
    294     dead_db();
    295 
    296 /**
    297  * Format specifiers for DB columns. Columns not listed here default to %s.
    298  * @since 2.8.0
    299  * @see wpdb:$field_types
    300  * @see wpdb:prepare()
    301  * @see wpdb:insert()
    302  * @see wpdb:update()
    303  */
    304 $wpdb->field_types = array( 'post_author' => '%d', 'post_parent' => '%d', 'menu_order' => '%d', 'term_id' => '%d', 'term_group' => '%d', 'term_taxonomy_id' => '%d',
    305     'parent' => '%d', 'count' => '%d','object_id' => '%d', 'term_order' => '%d', 'ID' => '%d', 'commment_ID' => '%d', 'comment_post_ID' => '%d', 'comment_parent' => '%d',
    306     'user_id' => '%d', 'link_id' => '%d', 'link_owner' => '%d', 'link_rating' => '%d', 'option_id' => '%d', 'blog_id' => '%d', 'meta_id' => '%d', 'post_id' => '%d',
    307     'user_status' => '%d', 'umeta_id' => '%d', 'comment_karma' => '%d', 'comment_count' => '%d');
    308 
    309 $prefix = $wpdb->set_prefix($table_prefix);
    310 
    311 if ( is_wp_error($prefix) )
    312     wp_die(/*WP_I18N_BAD_PREFIX*/'<strong>ERROR</strong>: <code>$table_prefix</code> in <code>wp-config.php</code> can only contain numbers, letters, and underscores.'/*/WP_I18N_BAD_PREFIX*/);
    313 
    314 /**
    315  * Copy an object.
    316  *
    317  * Returns a cloned copy of an object.
    318  *
    319  * @since 2.7.0
    320  *
    321  * @param object $object The object to clone
    322  * @return object The cloned object
    323  */
    324 function wp_clone( $object ) {
    325     static $can_clone;
    326     if ( !isset( $can_clone ) ) {
    327         $can_clone = version_compare( phpversion(), '5.0', '>=' );
    328     }
    329     return $can_clone ? clone( $object ) : $object;
    330 }
    331 
    332 /**
    333  * Whether the current request is in WordPress admin Panel
    334  *
    335  * Does not inform on whether the user is an admin! Use capability checks to
    336  * tell if the user should be accessing a section or not.
    337  *
    338  * @since 1.5.1
    339  *
    340  * @return bool True if inside WordPress administration pages.
    341  */
    342 function is_admin() {
    343     if ( defined('WP_ADMIN') )
    344         return WP_ADMIN;
    345     return false;
    346 }
    347 
    348 if ( file_exists(WP_CONTENT_DIR . '/object-cache.php') ) {
    349     require_once (WP_CONTENT_DIR . '/object-cache.php');
    350     $_wp_using_ext_object_cache = true;
    351 } else {
    352     require_once (ABSPATH . WPINC . '/cache.php');
    353     $_wp_using_ext_object_cache = false;
    354 }
    355 
    356 wp_cache_init();
    357 if ( function_exists('wp_cache_add_global_groups') ) {
    358         if( is_multisite() ) {
    359                 wp_cache_add_global_groups(array ('users', 'userlogins', 'usermeta', 'site-transient', 'site-options', 'site-lookup', 'blog-lookup', 'blog-details', 'rss'));
    360         } else {
    361             wp_cache_add_global_groups(array ('users', 'userlogins', 'usermeta', 'site-transient'));
    362         }
    363     wp_cache_add_non_persistent_groups(array( 'comment', 'counts', 'plugins' ));
    364 }
    365 
    366 if( is_multisite() ) {
     56wp_set_wpdb_vars();
     57
     58wp_start_object_cache();
     59
     60if( is_multisite() )
    36761    require (ABSPATH . WPINC . '/ms-load.php');
    368 }
    36962
    37063require (ABSPATH . WPINC . '/plugin.php');
     
    37265include_once(ABSPATH . WPINC . '/pomo/mo.php');
    37366
    374 if( is_multisite() && defined( "SHORTINIT" ) && SHORTINIT ) // stop most of WP being loaded, we just want the basics
     67if( is_multisite() && SHORTINIT ) // stop most of WP being loaded, we just want the basics
    37568    return false;
    37669
    37770require_once (ABSPATH . WPINC . '/l10n.php');
    37871
    379 if( is_multisite() ) {
    380         if ( !is_blog_installed() && !defined('WP_INSTALLING') ) {
    381                 die( __( 'The blog you have requested is not installed properly. Please contact the system administrator.' ) ); // have to die here ~ Mark
    382         }
    383 } elseif ( !is_blog_installed() && (strpos($_SERVER['PHP_SELF'], 'install.php') === false && !defined('WP_INSTALLING')) ) {
    384     if ( defined('WP_SITEURL') )
    385         $link = WP_SITEURL . '/wp-admin/install.php';
    386     elseif (strpos($_SERVER['PHP_SELF'], 'wp-admin') !== false)
    387         $link = preg_replace('|/wp-admin/?.*?$|', '/', $_SERVER['PHP_SELF']) . 'wp-admin/install.php';
    388     else
    389         $link = preg_replace('|/[^/]+?$|', '/', $_SERVER['PHP_SELF']) . 'wp-admin/install.php';
    390     require_once(ABSPATH . WPINC . '/kses.php');
    391     require_once(ABSPATH . WPINC . '/pluggable.php');
    392     require_once(ABSPATH . WPINC . '/formatting.php');
    393     wp_redirect($link);
    394     die(); // have to die here ~ Mark
    395 }
     72wp_not_installed();
    39673
    39774require (ABSPATH . WPINC . '/formatting.php');
     
    41693require (ABSPATH . WPINC . '/kses.php');
    41794require (ABSPATH . WPINC . '/cron.php');
    418 require (ABSPATH . WPINC . '/version.php');
    41995require (ABSPATH . WPINC . '/deprecated.php');
    42096require (ABSPATH . WPINC . '/script-loader.php');
     
    433109}
    434110
    435 if ( !defined('WP_CONTENT_URL') )
    436     define( 'WP_CONTENT_URL', get_option('siteurl') . '/wp-content'); // full url - WP_CONTENT_DIR is defined further up
    437 
    438 /**
    439  * Allows for the plugins directory to be moved from the default location.
    440  *
    441  * @since 2.6.0
    442  */
    443 if ( !defined('WP_PLUGIN_DIR') )
    444     define( 'WP_PLUGIN_DIR', WP_CONTENT_DIR . '/plugins' ); // full path, no trailing slash
    445 
    446 /**
    447  * Allows for the plugins directory to be moved from the default location.
    448  *
    449  * @since 2.6.0
    450  */
    451 if ( !defined('WP_PLUGIN_URL') )
    452     define( 'WP_PLUGIN_URL', WP_CONTENT_URL . '/plugins' ); // full url, no trailing slash
    453 
    454 /**
    455  * Allows for the plugins directory to be moved from the default location.
    456  *
    457  * @since 2.1.0
    458  */
    459 if ( !defined('PLUGINDIR') )
    460     define( 'PLUGINDIR', 'wp-content/plugins' ); // Relative to ABSPATH.  For back compat.
     111wp_default_constants('wp_included');
    461112
    462113if( is_multisite() )
    463114        ms_network_settings();
    464 /**
    465  * Allows for the mu-plugins directory to be moved from the default location.
    466  *
    467  * @since 2.8.0
    468  */
    469 if ( !defined('WPMU_PLUGIN_DIR') )
    470     define( 'WPMU_PLUGIN_DIR', WP_CONTENT_DIR . '/mu-plugins' ); // full path, no trailing slash
    471 
    472 /**
    473  * Allows for the mu-plugins directory to be moved from the default location.
    474  *
    475  * @since 2.8.0
    476  */
    477 if ( !defined('WPMU_PLUGIN_URL') )
    478     define( 'WPMU_PLUGIN_URL', WP_CONTENT_URL . '/mu-plugins' ); // full url, no trailing slash
    479 
    480 /**
    481  * Allows for the mu-plugins directory to be moved from the default location.
    482  *
    483  * @since 2.8.0
    484  */
    485 if ( !defined( 'MUPLUGINDIR' ) )
    486     define( 'MUPLUGINDIR', 'wp-content/mu-plugins' ); // Relative to ABSPATH.  For back compat.
    487 
    488 if ( is_dir( WPMU_PLUGIN_DIR ) ) {
    489     if ( $dh = opendir( WPMU_PLUGIN_DIR ) ) {
    490         $mu_plugins = array ();
    491         while ( ( $plugin = readdir( $dh ) ) !== false ) {
    492             if ( substr( $plugin, -4 ) == '.php' ) {
    493                 $mu_plugins[] = $plugin;
    494             }
    495         }
    496        
    497         closedir( $dh );
    498 
    499         if( is_multisite() )
    500             sort( $mu_plugins );
    501        
    502         foreach( $mu_plugins as $mu_plugin ) {
    503             include_once( WPMU_PLUGIN_DIR . '/' . $mu_plugin );
    504         }
    505     }
    506 }
     115
     116wp_default_constants('ms_network_settings_loaded');
     117
     118wp_load_mu_plugins();
     119
    507120/**
    508121 * Used to load network wide plugins
    509122 * @since 3.0
    510123 */
    511 if( is_multisite() ) {
     124if( is_multisite() )
    512125    ms_network_plugins();
    513 }
    514126
    515127do_action('muplugins_loaded');
     
    523135    ms_network_cookies();
    524136}
    525 /**
    526  * Used to guarantee unique hash cookies
    527  * @since 1.5
    528  */
    529 if( !defined('COOKIEHASH') )
    530     define('COOKIEHASH', md5(get_option('siteurl')));
    531 
    532 /**
    533  * Should be exactly the same as the default value of SECRET_KEY in wp-config-sample.php
    534  * @since 2.5.0
    535  */
    536 $wp_default_secret_key = 'put your unique phrase here';
    537 
    538 /**
    539  * It is possible to define this in wp-config.php
    540  * @since 2.0.0
    541  */
    542 if ( !defined('USER_COOKIE') )
    543     define('USER_COOKIE', 'wordpressuser_' . COOKIEHASH);
    544 
    545 /**
    546  * It is possible to define this in wp-config.php
    547  * @since 2.0.0
    548  */
    549 if ( !defined('PASS_COOKIE') )
    550     define('PASS_COOKIE', 'wordpresspass_' . COOKIEHASH);
    551 
    552 /**
    553  * It is possible to define this in wp-config.php
    554  * @since 2.5.0
    555  */
    556 if ( !defined('AUTH_COOKIE') )
    557     define('AUTH_COOKIE', 'wordpress_' . COOKIEHASH);
    558 
    559 /**
    560  * It is possible to define this in wp-config.php
    561  * @since 2.6.0
    562  */
    563 if ( !defined('SECURE_AUTH_COOKIE') )
    564     define('SECURE_AUTH_COOKIE', 'wordpress_sec_' . COOKIEHASH);
    565 
    566 /**
    567  * It is possible to define this in wp-config.php
    568  * @since 2.6.0
    569  */
    570 if ( !defined('LOGGED_IN_COOKIE') )
    571     define('LOGGED_IN_COOKIE', 'wordpress_logged_in_' . COOKIEHASH);
    572 
    573 /**
    574  * It is possible to define this in wp-config.php
    575  * @since 2.3.0
    576  */
    577 if ( !defined('TEST_COOKIE') )
    578     define('TEST_COOKIE', 'wordpress_test_cookie');
    579 
    580 /**
    581  * It is possible to define this in wp-config.php
    582  * @since 1.2.0
    583  */
    584 if ( !defined('COOKIEPATH') )
    585     define('COOKIEPATH', preg_replace('|https?://[^/]+|i', '', get_option('home') . '/' ) );
    586 
    587 /**
    588  * It is possible to define this in wp-config.php
    589  * @since 1.5.0
    590  */
    591 if ( !defined('SITECOOKIEPATH') )
    592     define('SITECOOKIEPATH', preg_replace('|https?://[^/]+|i', '', get_option('siteurl') . '/' ) );
    593 
    594 /**
    595  * It is possible to define this in wp-config.php
    596  * @since 2.6.0
    597  */
    598 if ( !defined('ADMIN_COOKIE_PATH') )
    599     define( 'ADMIN_COOKIE_PATH', SITECOOKIEPATH . 'wp-admin' );
    600 
    601 /**
    602  * It is possible to define this in wp-config.php
    603  * @since 2.6.0
    604  */
    605 if ( !defined('PLUGINS_COOKIE_PATH') )
    606     define( 'PLUGINS_COOKIE_PATH', preg_replace('|https?://[^/]+|i', '', WP_PLUGIN_URL)  );
    607 
    608 /**
    609  * It is possible to define this in wp-config.php
    610  * @since 2.0.0
    611  */
    612 if ( !defined('COOKIE_DOMAIN') )
    613     define('COOKIE_DOMAIN', false);
    614 
    615 /**
    616  * It is possible to define this in wp-config.php
    617  * @since 2.6.0
    618  */
    619 if ( !defined('FORCE_SSL_ADMIN') )
    620     define('FORCE_SSL_ADMIN', false);
    621 force_ssl_admin(FORCE_SSL_ADMIN);
    622 
    623 /**
    624  * It is possible to define this in wp-config.php
    625  * @since 2.6.0
    626  */
    627 if ( !defined('FORCE_SSL_LOGIN') )
    628     define('FORCE_SSL_LOGIN', false);
    629 force_ssl_login(FORCE_SSL_LOGIN);
    630 
    631 /**
    632  * It is possible to define this in wp-config.php
    633  * @since 2.5.0
    634  */
    635 if ( !defined( 'AUTOSAVE_INTERVAL' ) )
    636     define( 'AUTOSAVE_INTERVAL', 60 );
    637 
    638 /**
    639  * It is possible to define this in wp-config.php
    640  * @since 2.9.0
    641  */
    642 if ( !defined( 'EMPTY_TRASH_DAYS' ) )
    643     define( 'EMPTY_TRASH_DAYS', 30 );
     137
     138wp_default_constants('ms_loaded');
    644139
    645140require (ABSPATH . WPINC . '/vars.php');
     
    649144create_initial_taxonomies();
    650145
    651 // Check for hacks file if the option is enabled
    652 if ( get_option('hack_file') ) {
    653     if ( file_exists(ABSPATH . 'my-hacks.php') )
    654         require(ABSPATH . 'my-hacks.php');
    655 }
    656 
    657 $current_plugins = apply_filters( 'active_plugins', get_option( 'active_plugins' ) );
    658 if ( is_array($current_plugins) && !defined('WP_INSTALLING') ) {
    659     foreach ( $current_plugins as $plugin ) {
    660         // check the $plugin filename
    661         // Validate plugin filename
    662         if ( validate_file($plugin) // $plugin must validate as file
    663             || '.php' != substr($plugin, -4) // $plugin must end with '.php'
    664             || !file_exists(WP_PLUGIN_DIR . '/' . $plugin)  // $plugin must exist
    665             )
    666             continue;
    667 
    668         include_once(WP_PLUGIN_DIR . '/' . $plugin);
    669     }
    670     unset($plugin);
    671 }
    672 unset($current_plugins);
     146wp_load_plugins();
    673147
    674148require (ABSPATH . WPINC . '/pluggable.php');
    675149
    676 /*
    677  * In most cases the default internal encoding is latin1, which is of no use,
    678  * since we want to use the mb_ functions for utf-8 strings
    679  */
    680 if (function_exists('mb_internal_encoding')) {
    681     if (!@mb_internal_encoding(get_option('blog_charset')))
    682         mb_internal_encoding('UTF-8');
    683 }
    684 
    685 
    686 if ( defined('WP_CACHE') && function_exists('wp_cache_postload') )
     150wp_set_internal_encoding();
     151
     152if ( WP_CACHE && function_exists('wp_cache_postload') )
    687153    wp_cache_postload();
    688154
    689155do_action('plugins_loaded');
    690156
    691 $default_constants = array( 'WP_POST_REVISIONS' => true );
    692 foreach ( $default_constants as $c => $v )
    693     @define( $c, $v ); // will fail if the constant is already defined
    694 unset($default_constants, $c, $v);
    695 
    696 // If already slashed, strip.
    697 if ( get_magic_quotes_gpc() ) {
    698     $_GET    = stripslashes_deep($_GET   );
    699     $_POST   = stripslashes_deep($_POST  );
    700     $_COOKIE = stripslashes_deep($_COOKIE);
    701 }
    702 
    703 // Escape with wpdb.
    704 $_GET    = add_magic_quotes($_GET   );
    705 $_POST   = add_magic_quotes($_POST  );
    706 $_COOKIE = add_magic_quotes($_COOKIE);
    707 $_SERVER = add_magic_quotes($_SERVER);
    708 
    709 // Force REQUEST to be GET + POST.  If SERVER, COOKIE, or ENV are needed, use those superglobals directly.
    710 $_REQUEST = array_merge($_GET, $_POST);
     157wp_default_constants('plugins_loaded');
     158
     159wp_magic_quotes();
    711160
    712161do_action('sanitize_comment_cookies');
     
    750199do_action('setup_theme');
    751200
    752 /**
    753  * Web Path to the current active template directory
    754  * @since 1.5.0
    755  */
    756 define('TEMPLATEPATH', get_template_directory());
    757 
    758 /**
    759  * Web Path to the current active template stylesheet directory
    760  * @since 2.1.0
    761  */
    762 define('STYLESHEETPATH', get_stylesheet_directory());
     201wp_default_constants('setup_theme');
    763202
    764203// Load the default text localization domain.
    765204load_default_textdomain();
    766205
    767 /**
    768  * The locale of the blog
    769  * @since 1.5.0
    770  */
    771 $locale = get_locale();
    772 $locale_file = WP_LANG_DIR . "/$locale.php";
    773 if ( is_readable($locale_file) )
    774     require_once($locale_file);
    775 
    776 // Pull in locale data after loading text domain.
    777 require_once(ABSPATH . WPINC . '/locale.php');
     206wp_find_locale();
    778207
    779208/**
     
    784213$wp_locale =& new WP_Locale();
    785214
    786 // Load functions for active theme.
    787 if ( TEMPLATEPATH !== STYLESHEETPATH && file_exists(STYLESHEETPATH . '/functions.php') )
    788     include(STYLESHEETPATH . '/functions.php');
    789 if ( file_exists(TEMPLATEPATH . '/functions.php') )
    790     include(TEMPLATEPATH . '/functions.php');
    791 
    792 // Load in support for template functions which the theme supports
    793 require_if_theme_supports( 'post-thumbnails', ABSPATH . WPINC . '/post-thumbnail-template.php' );
    794 
    795 /**
    796  * Runs just before PHP shuts down execution.
    797  *
    798  * @access private
    799  * @since 1.2.0
    800  */
    801 function shutdown_action_hook() {
    802     do_action('shutdown');
    803     wp_cache_close();
    804 }
     215wp_load_theme_functions();
     216
    805217register_shutdown_function('shutdown_action_hook');
    806218
Note: See TracChangeset for help on using the changeset viewer.