| [ Index ] |
PHP Cross Reference of Wordpress 2.9.1 |
[Summary view] [Print] [Text view]
1 <?php 2 /** 3 * Used to setup and fix common variables and include 4 * the WordPress procedural and class library. 5 * 6 * You should not have to change this file and allows 7 * for some configuration in wp-config.php. 8 * 9 * @package WordPress 10 */ 11 12 if ( !defined('WP_MEMORY_LIMIT') ) 13 define('WP_MEMORY_LIMIT', '32M'); 14 15 if ( function_exists('memory_get_usage') && ( (int) @ini_get('memory_limit') < abs(intval(WP_MEMORY_LIMIT)) ) ) 16 @ini_set('memory_limit', WP_MEMORY_LIMIT); 17 18 set_magic_quotes_runtime(0); 19 @ini_set('magic_quotes_sybase', 0); 20 21 if ( function_exists('date_default_timezone_set') ) 22 date_default_timezone_set('UTC'); 23 24 /** 25 * Turn register globals off. 26 * 27 * @access private 28 * @since 2.1.0 29 * @return null Will return null if register_globals PHP directive was disabled 30 */ 31 function wp_unregister_GLOBALS() { 32 if ( !ini_get('register_globals') ) 33 return; 34 35 if ( isset($_REQUEST['GLOBALS']) ) 36 die('GLOBALS overwrite attempt detected'); 37 38 // Variables that shouldn't be unset 39 $noUnset = array('GLOBALS', '_GET', '_POST', '_COOKIE', '_REQUEST', '_SERVER', '_ENV', '_FILES', 'table_prefix'); 40 41 $input = array_merge($_GET, $_POST, $_COOKIE, $_SERVER, $_ENV, $_FILES, isset($_SESSION) && is_array($_SESSION) ? $_SESSION : array()); 42 foreach ( $input as $k => $v ) 43 if ( !in_array($k, $noUnset) && isset($GLOBALS[$k]) ) { 44 $GLOBALS[$k] = NULL; 45 unset($GLOBALS[$k]); 46 } 47 } 48 49 wp_unregister_GLOBALS(); 50 51 unset( $wp_filter, $cache_lastcommentmodified, $cache_lastpostdate ); 52 53 /** 54 * The $blog_id global, which you can change in the config allows you to create a simple 55 * multiple blog installation using just one WordPress and changing $blog_id around. 56 * 57 * @global int $blog_id 58 * @since 2.0.0 59 */ 60 if ( ! isset($blog_id) ) 61 $blog_id = 1; 62 63 // Fix for IIS when running with PHP ISAPI 64 if ( empty( $_SERVER['REQUEST_URI'] ) || ( php_sapi_name() != 'cgi-fcgi' && preg_match( '/^Microsoft-IIS\//', $_SERVER['SERVER_SOFTWARE'] ) ) ) { 65 66 // IIS Mod-Rewrite 67 if (isset($_SERVER['HTTP_X_ORIGINAL_URL'])) { 68 $_SERVER['REQUEST_URI'] = $_SERVER['HTTP_X_ORIGINAL_URL']; 69 } 70 // IIS Isapi_Rewrite 71 else if (isset($_SERVER['HTTP_X_REWRITE_URL'])) { 72 $_SERVER['REQUEST_URI'] = $_SERVER['HTTP_X_REWRITE_URL']; 73 } 74 else 75 { 76 // Use ORIG_PATH_INFO if there is no PATH_INFO 77 if ( !isset($_SERVER['PATH_INFO']) && isset($_SERVER['ORIG_PATH_INFO']) ) 78 $_SERVER['PATH_INFO'] = $_SERVER['ORIG_PATH_INFO']; 79 80 // Some IIS + PHP configurations puts the script-name in the path-info (No need to append it twice) 81 if ( isset($_SERVER['PATH_INFO']) ) { 82 if ( $_SERVER['PATH_INFO'] == $_SERVER['SCRIPT_NAME'] ) 83 $_SERVER['REQUEST_URI'] = $_SERVER['PATH_INFO']; 84 else 85 $_SERVER['REQUEST_URI'] = $_SERVER['SCRIPT_NAME'] . $_SERVER['PATH_INFO']; 86 } 87 88 // Append the query string if it exists and isn't null 89 if (isset($_SERVER['QUERY_STRING']) && !empty($_SERVER['QUERY_STRING'])) { 90 $_SERVER['REQUEST_URI'] .= '?' . $_SERVER['QUERY_STRING']; 91 } 92 } 93 } 94 95 // Fix for PHP as CGI hosts that set SCRIPT_FILENAME to something ending in php.cgi for all requests 96 if ( isset($_SERVER['SCRIPT_FILENAME']) && ( strpos($_SERVER['SCRIPT_FILENAME'], 'php.cgi') == strlen($_SERVER['SCRIPT_FILENAME']) - 7 ) ) 97 $_SERVER['SCRIPT_FILENAME'] = $_SERVER['PATH_TRANSLATED']; 98 99 // Fix for Dreamhost and other PHP as CGI hosts 100 if (strpos($_SERVER['SCRIPT_NAME'], 'php.cgi') !== false) 101 unset($_SERVER['PATH_INFO']); 102 103 // Fix empty PHP_SELF 104 $PHP_SELF = $_SERVER['PHP_SELF']; 105 if ( empty($PHP_SELF) ) 106 $_SERVER['PHP_SELF'] = $PHP_SELF = preg_replace("/(\?.*)?$/",'',$_SERVER["REQUEST_URI"]); 107 108 if ( version_compare( '4.3', phpversion(), '>' ) ) { 109 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() ) ); 110 } 111 112 if ( !defined('WP_CONTENT_DIR') ) 113 define( 'WP_CONTENT_DIR', ABSPATH . 'wp-content' ); // no trailing slash, full paths only - WP_CONTENT_URL is defined further down 114 115 if ( file_exists(ABSPATH . '.maintenance') && !defined('WP_INSTALLING') ) { 116 include(ABSPATH . '.maintenance'); 117 // If the $upgrading timestamp is older than 10 minutes, don't die. 118 if ( ( time() - $upgrading ) < 600 ) { 119 if ( file_exists( WP_CONTENT_DIR . '/maintenance.php' ) ) { 120 require_once( WP_CONTENT_DIR . '/maintenance.php' ); 121 die(); 122 } 123 124 $protocol = $_SERVER["SERVER_PROTOCOL"]; 125 if ( 'HTTP/1.1' != $protocol && 'HTTP/1.0' != $protocol ) 126 $protocol = 'HTTP/1.0'; 127 header( "$protocol 503 Service Unavailable", true, 503 ); 128 header( 'Content-Type: text/html; charset=utf-8' ); 129 header( 'Retry-After: 600' ); 130 ?> 131 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 132 <html xmlns="http://www.w3.org/1999/xhtml"> 133 <head> 134 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 135 <title>Maintenance</title> 136 137 </head> 138 <body> 139 <h1>Briefly unavailable for scheduled maintenance. Check back in a minute.</h1> 140 </body> 141 </html> 142 <?php 143 die(); 144 } 145 } 146 147 if ( !extension_loaded('mysql') && !file_exists(WP_CONTENT_DIR . '/db.php') ) 148 die( /*WP_I18N_OLD_MYSQL*/'Your PHP installation appears to be missing the MySQL extension which is required by WordPress.'/*/WP_I18N_OLD_MYSQL*/ ); 149 150 /** 151 * PHP 4 standard microtime start capture. 152 * 153 * @access private 154 * @since 0.71 155 * @global int $timestart Seconds and Microseconds added together from when function is called. 156 * @return bool Always returns true. 157 */ 158 function timer_start() { 159 global $timestart; 160 $mtime = explode(' ', microtime() ); 161 $mtime = $mtime[1] + $mtime[0]; 162 $timestart = $mtime; 163 return true; 164 } 165 166 /** 167 * Return and/or display the time from the page start to when function is called. 168 * 169 * You can get the results and print them by doing: 170 * <code> 171 * $nTimePageTookToExecute = timer_stop(); 172 * echo $nTimePageTookToExecute; 173 * </code> 174 * 175 * Or instead, you can do: 176 * <code> 177 * timer_stop(1); 178 * </code> 179 * which will do what the above does. If you need the result, you can assign it to a variable, but 180 * most cases, you only need to echo it. 181 * 182 * @since 0.71 183 * @global int $timestart Seconds and Microseconds added together from when timer_start() is called 184 * @global int $timeend Seconds and Microseconds added together from when function is called 185 * 186 * @param int $display Use '0' or null to not echo anything and 1 to echo the total time 187 * @param int $precision The amount of digits from the right of the decimal to display. Default is 3. 188 * @return float The "second.microsecond" finished time calculation 189 */ 190 function timer_stop($display = 0, $precision = 3) { //if called like timer_stop(1), will echo $timetotal 191 global $timestart, $timeend; 192 $mtime = microtime(); 193 $mtime = explode(' ',$mtime); 194 $mtime = $mtime[1] + $mtime[0]; 195 $timeend = $mtime; 196 $timetotal = $timeend-$timestart; 197 $r = ( function_exists('number_format_i18n') ) ? number_format_i18n($timetotal, $precision) : number_format($timetotal, $precision); 198 if ( $display ) 199 echo $r; 200 return $r; 201 } 202 timer_start(); 203 204 // Add define('WP_DEBUG', true); to wp-config.php to enable display of notices during development. 205 if ( defined('WP_DEBUG') && WP_DEBUG ) { 206 if ( defined('E_DEPRECATED') ) 207 error_reporting(E_ALL & ~E_DEPRECATED & ~E_STRICT); 208 else 209 error_reporting(E_ALL); 210 // 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 211 if ( ! defined('WP_DEBUG_DISPLAY') || WP_DEBUG_DISPLAY ) 212 ini_set('display_errors', 1); 213 // Add define('WP_DEBUG_LOG', true); to enable php debug logging to WP_CONTENT_DIR/debug.log 214 if ( defined('WP_DEBUG_LOG') && WP_DEBUG_LOG ) { 215 ini_set('log_errors', 1); 216 ini_set('error_log', WP_CONTENT_DIR . '/debug.log'); 217 } 218 } else { 219 define('WP_DEBUG', false); 220 if ( defined('E_RECOVERABLE_ERROR') ) 221 error_reporting(E_ERROR | E_WARNING | E_PARSE | E_USER_ERROR | E_USER_WARNING | E_RECOVERABLE_ERROR); 222 else 223 error_reporting(E_ERROR | E_WARNING | E_PARSE | E_USER_ERROR | E_USER_WARNING); 224 } 225 226 // For an advanced caching plugin to use, static because you would only want one 227 if ( defined('WP_CACHE') && WP_CACHE ) 228 @include WP_CONTENT_DIR . '/advanced-cache.php'; 229 230 /** 231 * Private 232 */ 233 if ( !defined('MEDIA_TRASH') ) 234 define('MEDIA_TRASH', false); 235 236 /** 237 * Stores the location of the WordPress directory of functions, classes, and core content. 238 * 239 * @since 1.0.0 240 */ 241 define('WPINC', 'wp-includes'); 242 243 if ( !defined('WP_LANG_DIR') ) { 244 /** 245 * Stores the location of the language directory. First looks for language folder in WP_CONTENT_DIR 246 * and uses that folder if it exists. Or it uses the "languages" folder in WPINC. 247 * 248 * @since 2.1.0 249 */ 250 if ( file_exists(WP_CONTENT_DIR . '/languages') && @is_dir(WP_CONTENT_DIR . '/languages') ) { 251 define('WP_LANG_DIR', WP_CONTENT_DIR . '/languages'); // no leading slash, no trailing slash, full path, not relative to ABSPATH 252 if (!defined('LANGDIR')) { 253 // Old static relative path maintained for limited backwards compatibility - won't work in some cases 254 define('LANGDIR', 'wp-content/languages'); 255 } 256 } else { 257 define('WP_LANG_DIR', ABSPATH . WPINC . '/languages'); // no leading slash, no trailing slash, full path, not relative to ABSPATH 258 if (!defined('LANGDIR')) { 259 // Old relative path maintained for backwards compatibility 260 define('LANGDIR', WPINC . '/languages'); 261 } 262 } 263 } 264 265 require (ABSPATH . WPINC . '/compat.php'); 266 require (ABSPATH . WPINC . '/functions.php'); 267 require (ABSPATH . WPINC . '/classes.php'); 268 269 require_wp_db(); 270 271 if ( !empty($wpdb->error) ) 272 dead_db(); 273 274 /** 275 * Format specifiers for DB columns. Columns not listed here default to %s. 276 * @since 2.8.0 277 * @see wpdb:$field_types 278 * @see wpdb:prepare() 279 * @see wpdb:insert() 280 * @see wpdb:update() 281 */ 282 $wpdb->field_types = array( 'post_author' => '%d', 'post_parent' => '%d', 'menu_order' => '%d', 'term_id' => '%d', 'term_group' => '%d', 'term_taxonomy_id' => '%d', 283 'parent' => '%d', 'count' => '%d','object_id' => '%d', 'term_order' => '%d', 'ID' => '%d', 'commment_ID' => '%d', 'comment_post_ID' => '%d', 'comment_parent' => '%d', 284 'user_id' => '%d', 'link_id' => '%d', 'link_owner' => '%d', 'link_rating' => '%d', 'option_id' => '%d', 'blog_id' => '%d', 'meta_id' => '%d', 'post_id' => '%d', 285 'user_status' => '%d', 'umeta_id' => '%d', 'comment_karma' => '%d', 'comment_count' => '%d'); 286 287 $prefix = $wpdb->set_prefix($table_prefix); 288 289 if ( is_wp_error($prefix) ) 290 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*/); 291 292 /** 293 * Copy an object. 294 * 295 * Returns a cloned copy of an object. 296 * 297 * @since 2.7.0 298 * 299 * @param object $object The object to clone 300 * @return object The cloned object 301 */ 302 function wp_clone( $object ) { 303 static $can_clone; 304 if ( !isset( $can_clone ) ) { 305 $can_clone = version_compare( phpversion(), '5.0', '>=' ); 306 } 307 return $can_clone ? clone( $object ) : $object; 308 } 309 310 /** 311 * Whether the current request is in WordPress admin Panel 312 * 313 * Does not inform on whether the user is an admin! Use capability checks to 314 * tell if the user should be accessing a section or not. 315 * 316 * @since 1.5.1 317 * 318 * @return bool True if inside WordPress administration pages. 319 */ 320 function is_admin() { 321 if ( defined('WP_ADMIN') ) 322 return WP_ADMIN; 323 return false; 324 } 325 326 if ( file_exists(WP_CONTENT_DIR . '/object-cache.php') ) { 327 require_once (WP_CONTENT_DIR . '/object-cache.php'); 328 $_wp_using_ext_object_cache = true; 329 } else { 330 require_once (ABSPATH . WPINC . '/cache.php'); 331 $_wp_using_ext_object_cache = false; 332 } 333 334 wp_cache_init(); 335 if ( function_exists('wp_cache_add_global_groups') ) { 336 wp_cache_add_global_groups(array ('users', 'userlogins', 'usermeta', 'site-transient')); 337 wp_cache_add_non_persistent_groups(array( 'comment', 'counts', 'plugins' )); 338 } 339 340 require (ABSPATH . WPINC . '/plugin.php'); 341 require (ABSPATH . WPINC . '/default-filters.php'); 342 include_once(ABSPATH . WPINC . '/pomo/mo.php'); 343 require_once (ABSPATH . WPINC . '/l10n.php'); 344 345 if ( !is_blog_installed() && (strpos($_SERVER['PHP_SELF'], 'install.php') === false && !defined('WP_INSTALLING')) ) { 346 if ( defined('WP_SITEURL') ) 347 $link = WP_SITEURL . '/wp-admin/install.php'; 348 elseif (strpos($_SERVER['PHP_SELF'], 'wp-admin') !== false) 349 $link = preg_replace('|/wp-admin/?.*?$|', '/', $_SERVER['PHP_SELF']) . 'wp-admin/install.php'; 350 else 351 $link = preg_replace('|/[^/]+?$|', '/', $_SERVER['PHP_SELF']) . 'wp-admin/install.php'; 352 require_once(ABSPATH . WPINC . '/kses.php'); 353 require_once(ABSPATH . WPINC . '/pluggable.php'); 354 require_once(ABSPATH . WPINC . '/formatting.php'); 355 wp_redirect($link); 356 die(); // have to die here ~ Mark 357 } 358 359 require (ABSPATH . WPINC . '/formatting.php'); 360 require (ABSPATH . WPINC . '/capabilities.php'); 361 require (ABSPATH . WPINC . '/query.php'); 362 require (ABSPATH . WPINC . '/theme.php'); 363 require (ABSPATH . WPINC . '/user.php'); 364 require (ABSPATH . WPINC . '/meta.php'); 365 require (ABSPATH . WPINC . '/general-template.php'); 366 require (ABSPATH . WPINC . '/link-template.php'); 367 require (ABSPATH . WPINC . '/author-template.php'); 368 require (ABSPATH . WPINC . '/post.php'); 369 require (ABSPATH . WPINC . '/post-template.php'); 370 require (ABSPATH . WPINC . '/category.php'); 371 require (ABSPATH . WPINC . '/category-template.php'); 372 require (ABSPATH . WPINC . '/comment.php'); 373 require (ABSPATH . WPINC . '/comment-template.php'); 374 require (ABSPATH . WPINC . '/rewrite.php'); 375 require (ABSPATH . WPINC . '/feed.php'); 376 require (ABSPATH . WPINC . '/bookmark.php'); 377 require (ABSPATH . WPINC . '/bookmark-template.php'); 378 require (ABSPATH . WPINC . '/kses.php'); 379 require (ABSPATH . WPINC . '/cron.php'); 380 require (ABSPATH . WPINC . '/version.php'); 381 require (ABSPATH . WPINC . '/deprecated.php'); 382 require (ABSPATH . WPINC . '/script-loader.php'); 383 require (ABSPATH . WPINC . '/taxonomy.php'); 384 require (ABSPATH . WPINC . '/update.php'); 385 require (ABSPATH . WPINC . '/canonical.php'); 386 require (ABSPATH . WPINC . '/shortcodes.php'); 387 require (ABSPATH . WPINC . '/media.php'); 388 require (ABSPATH . WPINC . '/http.php'); 389 require (ABSPATH . WPINC . '/widgets.php'); 390 391 if ( !defined('WP_CONTENT_URL') ) 392 define( 'WP_CONTENT_URL', get_option('siteurl') . '/wp-content'); // full url - WP_CONTENT_DIR is defined further up 393 394 /** 395 * Allows for the plugins directory to be moved from the default location. 396 * 397 * @since 2.6.0 398 */ 399 if ( !defined('WP_PLUGIN_DIR') ) 400 define( 'WP_PLUGIN_DIR', WP_CONTENT_DIR . '/plugins' ); // full path, no trailing slash 401 402 /** 403 * Allows for the plugins directory to be moved from the default location. 404 * 405 * @since 2.6.0 406 */ 407 if ( !defined('WP_PLUGIN_URL') ) 408 define( 'WP_PLUGIN_URL', WP_CONTENT_URL . '/plugins' ); // full url, no trailing slash 409 410 /** 411 * Allows for the plugins directory to be moved from the default location. 412 * 413 * @since 2.1.0 414 */ 415 if ( !defined('PLUGINDIR') ) 416 define( 'PLUGINDIR', 'wp-content/plugins' ); // Relative to ABSPATH. For back compat. 417 418 /** 419 * Allows for the mu-plugins directory to be moved from the default location. 420 * 421 * @since 2.8.0 422 */ 423 if ( !defined('WPMU_PLUGIN_DIR') ) 424 define( 'WPMU_PLUGIN_DIR', WP_CONTENT_DIR . '/mu-plugins' ); // full path, no trailing slash 425 426 /** 427 * Allows for the mu-plugins directory to be moved from the default location. 428 * 429 * @since 2.8.0 430 */ 431 if ( !defined('WPMU_PLUGIN_URL') ) 432 define( 'WPMU_PLUGIN_URL', WP_CONTENT_URL . '/mu-plugins' ); // full url, no trailing slash 433 434 /** 435 * Allows for the mu-plugins directory to be moved from the default location. 436 * 437 * @since 2.8.0 438 */ 439 if ( !defined( 'MUPLUGINDIR' ) ) 440 define( 'MUPLUGINDIR', 'wp-content/mu-plugins' ); // Relative to ABSPATH. For back compat. 441 442 if ( is_dir( WPMU_PLUGIN_DIR ) ) { 443 if ( $dh = opendir( WPMU_PLUGIN_DIR ) ) { 444 while ( ( $plugin = readdir( $dh ) ) !== false ) { 445 if ( substr( $plugin, -4 ) == '.php' ) { 446 include_once( WPMU_PLUGIN_DIR . '/' . $plugin ); 447 } 448 } 449 } 450 } 451 do_action('muplugins_loaded'); 452 453 /** 454 * Used to guarantee unique hash cookies 455 * @since 1.5 456 */ 457 define('COOKIEHASH', md5(get_option('siteurl'))); 458 459 /** 460 * Should be exactly the same as the default value of SECRET_KEY in wp-config-sample.php 461 * @since 2.5.0 462 */ 463 $wp_default_secret_key = 'put your unique phrase here'; 464 465 /** 466 * It is possible to define this in wp-config.php 467 * @since 2.0.0 468 */ 469 if ( !defined('USER_COOKIE') ) 470 define('USER_COOKIE', 'wordpressuser_' . COOKIEHASH); 471 472 /** 473 * It is possible to define this in wp-config.php 474 * @since 2.0.0 475 */ 476 if ( !defined('PASS_COOKIE') ) 477 define('PASS_COOKIE', 'wordpresspass_' . COOKIEHASH); 478 479 /** 480 * It is possible to define this in wp-config.php 481 * @since 2.5.0 482 */ 483 if ( !defined('AUTH_COOKIE') ) 484 define('AUTH_COOKIE', 'wordpress_' . COOKIEHASH); 485 486 /** 487 * It is possible to define this in wp-config.php 488 * @since 2.6.0 489 */ 490 if ( !defined('SECURE_AUTH_COOKIE') ) 491 define('SECURE_AUTH_COOKIE', 'wordpress_sec_' . COOKIEHASH); 492 493 /** 494 * It is possible to define this in wp-config.php 495 * @since 2.6.0 496 */ 497 if ( !defined('LOGGED_IN_COOKIE') ) 498 define('LOGGED_IN_COOKIE', 'wordpress_logged_in_' . COOKIEHASH); 499 500 /** 501 * It is possible to define this in wp-config.php 502 * @since 2.3.0 503 */ 504 if ( !defined('TEST_COOKIE') ) 505 define('TEST_COOKIE', 'wordpress_test_cookie'); 506 507 /** 508 * It is possible to define this in wp-config.php 509 * @since 1.2.0 510 */ 511 if ( !defined('COOKIEPATH') ) 512 define('COOKIEPATH', preg_replace('|https?://[^/]+|i', '', get_option('home') . '/' ) ); 513 514 /** 515 * It is possible to define this in wp-config.php 516 * @since 1.5.0 517 */ 518 if ( !defined('SITECOOKIEPATH') ) 519 define('SITECOOKIEPATH', preg_replace('|https?://[^/]+|i', '', get_option('siteurl') . '/' ) ); 520 521 /** 522 * It is possible to define this in wp-config.php 523 * @since 2.6.0 524 */ 525 if ( !defined('ADMIN_COOKIE_PATH') ) 526 define( 'ADMIN_COOKIE_PATH', SITECOOKIEPATH . 'wp-admin' ); 527 528 /** 529 * It is possible to define this in wp-config.php 530 * @since 2.6.0 531 */ 532 if ( !defined('PLUGINS_COOKIE_PATH') ) 533 define( 'PLUGINS_COOKIE_PATH', preg_replace('|https?://[^/]+|i', '', WP_PLUGIN_URL) ); 534 535 /** 536 * It is possible to define this in wp-config.php 537 * @since 2.0.0 538 */ 539 if ( !defined('COOKIE_DOMAIN') ) 540 define('COOKIE_DOMAIN', false); 541 542 /** 543 * It is possible to define this in wp-config.php 544 * @since 2.6.0 545 */ 546 if ( !defined('FORCE_SSL_ADMIN') ) 547 define('FORCE_SSL_ADMIN', false); 548 force_ssl_admin(FORCE_SSL_ADMIN); 549 550 /** 551 * It is possible to define this in wp-config.php 552 * @since 2.6.0 553 */ 554 if ( !defined('FORCE_SSL_LOGIN') ) 555 define('FORCE_SSL_LOGIN', false); 556 force_ssl_login(FORCE_SSL_LOGIN); 557 558 /** 559 * It is possible to define this in wp-config.php 560 * @since 2.5.0 561 */ 562 if ( !defined( 'AUTOSAVE_INTERVAL' ) ) 563 define( 'AUTOSAVE_INTERVAL', 60 ); 564 565 /** 566 * It is possible to define this in wp-config.php 567 * @since 2.9.0 568 */ 569 if ( !defined( 'EMPTY_TRASH_DAYS' ) ) 570 define( 'EMPTY_TRASH_DAYS', 30 ); 571 572 require (ABSPATH . WPINC . '/vars.php'); 573 574 // make taxonomies available to plugins and themes 575 // @plugin authors: warning: this gets registered again on the init hook 576 create_initial_taxonomies(); 577 578 // Check for hacks file if the option is enabled 579 if ( get_option('hack_file') ) { 580 if ( file_exists(ABSPATH . 'my-hacks.php') ) 581 require(ABSPATH . 'my-hacks.php'); 582 } 583 584 $current_plugins = apply_filters( 'active_plugins', get_option( 'active_plugins' ) ); 585 if ( is_array($current_plugins) && !defined('WP_INSTALLING') ) { 586 foreach ( $current_plugins as $plugin ) { 587 // check the $plugin filename 588 // Validate plugin filename 589 if ( validate_file($plugin) // $plugin must validate as file 590 || '.php' != substr($plugin, -4) // $plugin must end with '.php' 591 || !file_exists(WP_PLUGIN_DIR . '/' . $plugin) // $plugin must exist 592 ) 593 continue; 594 595 include_once(WP_PLUGIN_DIR . '/' . $plugin); 596 } 597 unset($plugin); 598 } 599 unset($current_plugins); 600 601 require (ABSPATH . WPINC . '/pluggable.php'); 602 603 /* 604 * In most cases the default internal encoding is latin1, which is of no use, 605 * since we want to use the mb_ functions for utf-8 strings 606 */ 607 if (function_exists('mb_internal_encoding')) { 608 if (!@mb_internal_encoding(get_option('blog_charset'))) 609 mb_internal_encoding('UTF-8'); 610 } 611 612 613 if ( defined('WP_CACHE') && function_exists('wp_cache_postload') ) 614 wp_cache_postload(); 615 616 do_action('plugins_loaded'); 617 618 $default_constants = array( 'WP_POST_REVISIONS' => true ); 619 foreach ( $default_constants as $c => $v ) 620 @define( $c, $v ); // will fail if the constant is already defined 621 unset($default_constants, $c, $v); 622 623 // If already slashed, strip. 624 if ( get_magic_quotes_gpc() ) { 625 $_GET = stripslashes_deep($_GET ); 626 $_POST = stripslashes_deep($_POST ); 627 $_COOKIE = stripslashes_deep($_COOKIE); 628 } 629 630 // Escape with wpdb. 631 $_GET = add_magic_quotes($_GET ); 632 $_POST = add_magic_quotes($_POST ); 633 $_COOKIE = add_magic_quotes($_COOKIE); 634 $_SERVER = add_magic_quotes($_SERVER); 635 636 // Force REQUEST to be GET + POST. If SERVER, COOKIE, or ENV are needed, use those superglobals directly. 637 $_REQUEST = array_merge($_GET, $_POST); 638 639 do_action('sanitize_comment_cookies'); 640 641 /** 642 * WordPress Query object 643 * @global object $wp_the_query 644 * @since 2.0.0 645 */ 646 $wp_the_query =& new WP_Query(); 647 648 /** 649 * Holds the reference to @see $wp_the_query 650 * Use this global for WordPress queries 651 * @global object $wp_query 652 * @since 1.5.0 653 */ 654 $wp_query =& $wp_the_query; 655 656 /** 657 * Holds the WordPress Rewrite object for creating pretty URLs 658 * @global object $wp_rewrite 659 * @since 1.5.0 660 */ 661 $wp_rewrite =& new WP_Rewrite(); 662 663 /** 664 * WordPress Object 665 * @global object $wp 666 * @since 2.0.0 667 */ 668 $wp =& new WP(); 669 670 /** 671 * WordPress Widget Factory Object 672 * @global object $wp_widget_factory 673 * @since 2.8.0 674 */ 675 $wp_widget_factory =& new WP_Widget_Factory(); 676 677 do_action('setup_theme'); 678 679 /** 680 * Web Path to the current active template directory 681 * @since 1.5.0 682 */ 683 define('TEMPLATEPATH', get_template_directory()); 684 685 /** 686 * Web Path to the current active template stylesheet directory 687 * @since 2.1.0 688 */ 689 define('STYLESHEETPATH', get_stylesheet_directory()); 690 691 // Load the default text localization domain. 692 load_default_textdomain(); 693 694 /** 695 * The locale of the blog 696 * @since 1.5.0 697 */ 698 $locale = get_locale(); 699 $locale_file = WP_LANG_DIR . "/$locale.php"; 700 if ( is_readable($locale_file) ) 701 require_once($locale_file); 702 703 // Pull in locale data after loading text domain. 704 require_once(ABSPATH . WPINC . '/locale.php'); 705 706 /** 707 * WordPress Locale object for loading locale domain date and various strings. 708 * @global object $wp_locale 709 * @since 2.1.0 710 */ 711 $wp_locale =& new WP_Locale(); 712 713 // Load functions for active theme. 714 if ( TEMPLATEPATH !== STYLESHEETPATH && file_exists(STYLESHEETPATH . '/functions.php') ) 715 include(STYLESHEETPATH . '/functions.php'); 716 if ( file_exists(TEMPLATEPATH . '/functions.php') ) 717 include(TEMPLATEPATH . '/functions.php'); 718 719 // Load in support for template functions which the theme supports 720 require_if_theme_supports( 'post-thumbnails', ABSPATH . WPINC . '/post-thumbnail-template.php' ); 721 722 /** 723 * Runs just before PHP shuts down execution. 724 * 725 * @access private 726 * @since 1.2.0 727 */ 728 function shutdown_action_hook() { 729 do_action('shutdown'); 730 wp_cache_close(); 731 } 732 register_shutdown_function('shutdown_action_hook'); 733 734 $wp->init(); // Sets up current user. 735 736 // Everything is loaded and initialized. 737 do_action('init'); 738 739 ?>
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
| Generated: Fri Jan 8 00:19:48 2010 | Cross-referenced by PHPXref 0.7 |