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