| [ XREF Home ] [ Index ] |
PHP Cross Reference of WordPress TrunkProvided by Yoast |
[Summary view] [Print] [Text view]
1 <?php 2 /** 3 * These functions are needed to load WordPress. 4 * 5 * @package WordPress 6 */ 7 8 /** 9 * Turn register globals off. 10 * 11 * @access private 12 * @since 2.1.0 13 * @return null Will return null if register_globals PHP directive was disabled 14 */ 15 function wp_unregister_GLOBALS() { 16 if ( !ini_get( 'register_globals' ) ) 17 return; 18 19 if ( isset( $_REQUEST['GLOBALS'] ) ) 20 die( /*WP_I18N_GLOBALS_OVERWRITE*/'GLOBALS overwrite attempt detected'/*/WP_I18N_GLOBALS_OVERWRITE*/ ); 21 22 // Variables that shouldn't be unset 23 $no_unset = array( 'GLOBALS', '_GET', '_POST', '_COOKIE', '_REQUEST', '_SERVER', '_ENV', '_FILES', 'table_prefix' ); 24 25 $input = array_merge( $_GET, $_POST, $_COOKIE, $_SERVER, $_ENV, $_FILES, isset( $_SESSION ) && is_array( $_SESSION ) ? $_SESSION : array() ); 26 foreach ( $input as $k => $v ) 27 if ( !in_array( $k, $no_unset ) && isset( $GLOBALS[$k] ) ) { 28 $GLOBALS[$k] = null; 29 unset( $GLOBALS[$k] ); 30 } 31 } 32 33 /** 34 * Fix $_SERVER variables for various setups. 35 * 36 * @access private 37 * @since 3.0.0 38 */ 39 function wp_fix_server_vars() { 40 global $PHP_SELF; 41 42 $default_server_values = array( 43 'SERVER_SOFTWARE' => '', 44 'REQUEST_URI' => '', 45 ); 46 47 $_SERVER = array_merge( $default_server_values, $_SERVER ); 48 49 // Fix for IIS when running with PHP ISAPI 50 if ( empty( $_SERVER['REQUEST_URI'] ) || ( php_sapi_name() != 'cgi-fcgi' && preg_match( '/^Microsoft-IIS\//', $_SERVER['SERVER_SOFTWARE'] ) ) ) { 51 52 // IIS Mod-Rewrite 53 if ( isset( $_SERVER['HTTP_X_ORIGINAL_URL'] ) ) { 54 $_SERVER['REQUEST_URI'] = $_SERVER['HTTP_X_ORIGINAL_URL']; 55 } 56 // IIS Isapi_Rewrite 57 else if ( isset( $_SERVER['HTTP_X_REWRITE_URL'] ) ) { 58 $_SERVER['REQUEST_URI'] = $_SERVER['HTTP_X_REWRITE_URL']; 59 } else { 60 // Use ORIG_PATH_INFO if there is no PATH_INFO 61 if ( !isset( $_SERVER['PATH_INFO'] ) && isset( $_SERVER['ORIG_PATH_INFO'] ) ) 62 $_SERVER['PATH_INFO'] = $_SERVER['ORIG_PATH_INFO']; 63 64 // Some IIS + PHP configurations puts the script-name in the path-info (No need to append it twice) 65 if ( isset( $_SERVER['PATH_INFO'] ) ) { 66 if ( $_SERVER['PATH_INFO'] == $_SERVER['SCRIPT_NAME'] ) 67 $_SERVER['REQUEST_URI'] = $_SERVER['PATH_INFO']; 68 else 69 $_SERVER['REQUEST_URI'] = $_SERVER['SCRIPT_NAME'] . $_SERVER['PATH_INFO']; 70 } 71 72 // Append the query string if it exists and isn't null 73 if ( ! empty( $_SERVER['QUERY_STRING'] ) ) { 74 $_SERVER['REQUEST_URI'] .= '?' . $_SERVER['QUERY_STRING']; 75 } 76 } 77 } 78 79 // Fix for PHP as CGI hosts that set SCRIPT_FILENAME to something ending in php.cgi for all requests 80 if ( isset( $_SERVER['SCRIPT_FILENAME'] ) && ( strpos( $_SERVER['SCRIPT_FILENAME'], 'php.cgi' ) == strlen( $_SERVER['SCRIPT_FILENAME'] ) - 7 ) ) 81 $_SERVER['SCRIPT_FILENAME'] = $_SERVER['PATH_TRANSLATED']; 82 83 // Fix for Dreamhost and other PHP as CGI hosts 84 if ( strpos( $_SERVER['SCRIPT_NAME'], 'php.cgi' ) !== false ) 85 unset( $_SERVER['PATH_INFO'] ); 86 87 // Fix empty PHP_SELF 88 $PHP_SELF = $_SERVER['PHP_SELF']; 89 if ( empty( $PHP_SELF ) ) 90 $_SERVER['PHP_SELF'] = $PHP_SELF = preg_replace( '/(\?.*)?$/', '', $_SERVER["REQUEST_URI"] ); 91 } 92 93 /** 94 * Check for the required PHP version, and the MySQL extension or a database drop-in. 95 * 96 * Dies if requirements are not met. 97 * 98 * @access private 99 * @since 3.0.0 100 */ 101 function wp_check_php_mysql_versions() { 102 // we can probably extend this function to check if wp_die() exists then use translated strings, and then use it in install.php etc. 103 104 global $required_php_version, $wp_version; 105 $php_version = phpversion(); 106 if ( version_compare( $required_php_version, $php_version, '>' ) ) 107 die( sprintf( /*WP_I18N_OLD_PHP*/'Your server is running PHP version %1$s but WordPress %2$s requires at least %3$s.'/*/WP_I18N_OLD_PHP*/, $php_version, $wp_version, $required_php_version ) ); 108 109 if ( !extension_loaded( 'mysql' ) && !file_exists( WP_CONTENT_DIR . '/db.php' ) ) 110 die( /*WP_I18N_OLD_MYSQL*/'Your PHP installation appears to be missing the MySQL extension which is required by WordPress.'/*/WP_I18N_OLD_MYSQL*/ ); 111 } 112 113 /** 114 * Don't load all of WordPress when handling a favicon.ico request. 115 * Instead, send the headers for a zero-length favicon and bail. 116 * 117 * @since 3.0.0 118 */ 119 function wp_favicon_request() { 120 if ( '/favicon.ico' == $_SERVER['REQUEST_URI'] ) { 121 header('Content-Type: image/vnd.microsoft.icon'); 122 header('Content-Length: 0'); 123 exit; 124 } 125 } 126 127 /** 128 * Dies with a maintenance message when conditions are met. 129 * 130 * Checks for a file in the WordPress root directory named ".maintenance". 131 * This file will contain the variable $upgrading, set to the time the file 132 * was created. If the file was created less than 10 minutes ago, WordPress 133 * enters maintenance mode and displays a message. 134 * 135 * The default message can be replaced by using a drop-in (maintenance.php in 136 * the wp-content directory). 137 * 138 * @access private 139 * @since 3.0.0 140 */ 141 function wp_maintenance() { 142 if ( !file_exists( ABSPATH . '.maintenance' ) || defined( 'WP_INSTALLING' ) ) 143 return; 144 145 global $upgrading; 146 147 include( ABSPATH . '.maintenance' ); 148 // If the $upgrading timestamp is older than 10 minutes, don't die. 149 if ( ( time() - $upgrading ) >= 600 ) 150 return; 151 152 if ( file_exists( WP_CONTENT_DIR . '/maintenance.php' ) ) { 153 require_once( WP_CONTENT_DIR . '/maintenance.php' ); 154 die(); 155 } 156 157 $protocol = $_SERVER["SERVER_PROTOCOL"]; 158 if ( 'HTTP/1.1' != $protocol && 'HTTP/1.0' != $protocol ) 159 $protocol = 'HTTP/1.0'; 160 header( "$protocol 503 Service Unavailable", true, 503 ); 161 header( 'Content-Type: text/html; charset=utf-8' ); 162 header( 'Retry-After: 600' ); 163 ?> 164 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 165 <html xmlns="http://www.w3.org/1999/xhtml"> 166 <head> 167 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 168 <title><?php echo /*WP_I18N_MAINTENANCE*/'Maintenance'/*/WP_I18N_MAINTENANCE*/; ?></title> 169 170 </head> 171 <body> 172 <h1><?php echo /*WP_I18N_MAINT_MSG*/'Briefly unavailable for scheduled maintenance. Check back in a minute.'/*/WP_I18N_MAINT_MSG*/; ?></h1> 173 </body> 174 </html> 175 <?php 176 die(); 177 } 178 179 /** 180 * PHP 4 standard microtime start capture. 181 * 182 * @access private 183 * @since 0.71 184 * @global int $timestart Seconds and Microseconds added together from when function is called. 185 * @return bool Always returns true. 186 */ 187 function timer_start() { 188 global $timestart; 189 $mtime = explode( ' ', microtime() ); 190 $timestart = $mtime[1] + $mtime[0]; 191 return true; 192 } 193 194 /** 195 * Return and/or display the time from the page start to when function is called. 196 * 197 * You can get the results and print them by doing: 198 * <code> 199 * $nTimePageTookToExecute = timer_stop(); 200 * echo $nTimePageTookToExecute; 201 * </code> 202 * 203 * Or instead, you can do: 204 * <code> 205 * timer_stop(1); 206 * </code> 207 * which will do what the above does. If you need the result, you can assign it to a variable, but 208 * most cases, you only need to echo it. 209 * 210 * @since 0.71 211 * @global int $timestart Seconds and Microseconds added together from when timer_start() is called 212 * @global int $timeend Seconds and Microseconds added together from when function is called 213 * 214 * @param int $display Use '0' or null to not echo anything and 1 to echo the total time 215 * @param int $precision The amount of digits from the right of the decimal to display. Default is 3. 216 * @return float The "second.microsecond" finished time calculation 217 */ 218 function timer_stop( $display = 0, $precision = 3 ) { // if called like timer_stop(1), will echo $timetotal 219 global $timestart, $timeend; 220 $mtime = microtime(); 221 $mtime = explode( ' ', $mtime ); 222 $timeend = $mtime[1] + $mtime[0]; 223 $timetotal = $timeend - $timestart; 224 $r = ( function_exists( 'number_format_i18n' ) ) ? number_format_i18n( $timetotal, $precision ) : number_format( $timetotal, $precision ); 225 if ( $display ) 226 echo $r; 227 return $r; 228 } 229 230 /** 231 * Sets PHP error handling and handles WordPress debug mode. 232 * 233 * Uses three constants: WP_DEBUG, WP_DEBUG_DISPLAY, and WP_DEBUG_LOG. All three can be 234 * defined in wp-config.php. Example: <code> define( 'WP_DEBUG', true ); </code> 235 * 236 * WP_DEBUG_DISPLAY and WP_DEBUG_LOG perform no function unless WP_DEBUG is true. 237 * WP_DEBUG defaults to false. 238 * 239 * When WP_DEBUG is true, all PHP notices are reported. WordPress will also display 240 * notices, including one when a deprecated WordPress function, function argument, 241 * or file is used. Deprecated code may be removed from a later version. 242 * 243 * It is strongly recommended that plugin and theme developers use WP_DEBUG in their 244 * development environments. 245 * 246 * When WP_DEBUG_DISPLAY is true, WordPress will force errors to be displayed. 247 * WP_DEBUG_DISPLAY defaults to true. Defining it as false prevents WordPress from 248 * changing the global configuration setting. (Defining WP_DEBUG_DISPLAY as false 249 * will never force errors to be hidden.) 250 * 251 * When WP_DEBUG_LOG is true, errors will be logged to wp-content/debug.log. 252 * WP_DEBUG_LOG defaults to false. 253 * 254 * @access private 255 * @since 3.0.0 256 */ 257 function wp_debug_mode() { 258 if ( WP_DEBUG ) { 259 // E_DEPRECATED is a core PHP constant in PHP 5.3. Don't define this yourself. 260 // The two statements are equivalent, just one is for 5.3+ and for less than 5.3. 261 if ( defined( 'E_DEPRECATED' ) ) 262 error_reporting( E_ALL & ~E_DEPRECATED & ~E_STRICT ); 263 else 264 error_reporting( E_ALL ); 265 266 if ( WP_DEBUG_DISPLAY ) 267 ini_set( 'display_errors', 1 ); 268 269 if ( WP_DEBUG_LOG ) { 270 ini_set( 'log_errors', 1 ); 271 ini_set( 'error_log', WP_CONTENT_DIR . '/debug.log' ); 272 } 273 } else { 274 error_reporting( E_CORE_ERROR | E_CORE_WARNING | E_COMPILE_ERROR | E_ERROR | E_WARNING | E_PARSE | E_USER_ERROR | E_USER_WARNING | E_RECOVERABLE_ERROR ); 275 } 276 } 277 278 /** 279 * Sets the location of the language directory. 280 * 281 * To set directory manually, define <code>WP_LANG_DIR</code> in wp-config.php. 282 * 283 * If the language directory exists within WP_CONTENT_DIR that is used 284 * Otherwise if the language directory exists within WPINC, that's used 285 * Finally, If neither of the preceeding directories is found, 286 * WP_CONTENT_DIR/languages is used. 287 * 288 * The WP_LANG_DIR constant was introduced in 2.1.0. 289 * 290 * @access private 291 * @since 3.0.0 292 */ 293 function wp_set_lang_dir() { 294 if ( !defined( 'WP_LANG_DIR' ) ) { 295 if ( file_exists( WP_CONTENT_DIR . '/languages' ) && @is_dir( WP_CONTENT_DIR . '/languages' ) || !@is_dir(ABSPATH . WPINC . '/languages') ) { 296 define( 'WP_LANG_DIR', WP_CONTENT_DIR . '/languages' ); // no leading slash, no trailing slash, full path, not relative to ABSPATH 297 if ( !defined( 'LANGDIR' ) ) { 298 // Old static relative path maintained for limited backwards compatibility - won't work in some cases 299 define( 'LANGDIR', 'wp-content/languages' ); 300 } 301 } else { 302 define( 'WP_LANG_DIR', ABSPATH . WPINC . '/languages' ); // no leading slash, no trailing slash, full path, not relative to ABSPATH 303 if ( !defined( 'LANGDIR' ) ) { 304 // Old relative path maintained for backwards compatibility 305 define( 'LANGDIR', WPINC . '/languages' ); 306 } 307 } 308 } 309 } 310 311 /** 312 * Load the correct database class file. 313 * 314 * This function is used to load the database class file either at runtime or by 315 * wp-admin/setup-config.php. We must globalize $wpdb to ensure that it is 316 * defined globally by the inline code in wp-db.php. 317 * 318 * @since 2.5.0 319 * @global $wpdb WordPress Database Object 320 */ 321 function require_wp_db() { 322 global $wpdb; 323 324 require_once( ABSPATH . WPINC . '/wp-db.php' ); 325 if ( file_exists( WP_CONTENT_DIR . '/db.php' ) ) 326 require_once( WP_CONTENT_DIR . '/db.php' ); 327 328 if ( isset( $wpdb ) ) 329 return; 330 331 $wpdb = new wpdb( DB_USER, DB_PASSWORD, DB_NAME, DB_HOST ); 332 } 333 334 /** 335 * Sets the database table prefix and the format specifiers for database table columns. 336 * 337 * Columns not listed here default to %s. 338 * 339 * @see wpdb::$field_types Since 2.8.0 340 * @see wpdb::prepare() 341 * @see wpdb::insert() 342 * @see wpdb::update() 343 * @see wpdb::set_prefix() 344 * 345 * @access private 346 * @since 3.0.0 347 */ 348 function wp_set_wpdb_vars() { 349 global $wpdb, $table_prefix; 350 if ( !empty( $wpdb->error ) ) 351 dead_db(); 352 353 $wpdb->field_types = array( 'post_author' => '%d', 'post_parent' => '%d', 'menu_order' => '%d', 'term_id' => '%d', 'term_group' => '%d', 'term_taxonomy_id' => '%d', 354 'parent' => '%d', 'count' => '%d','object_id' => '%d', 'term_order' => '%d', 'ID' => '%d', 'commment_ID' => '%d', 'comment_post_ID' => '%d', 'comment_parent' => '%d', 355 'user_id' => '%d', 'link_id' => '%d', 'link_owner' => '%d', 'link_rating' => '%d', 'option_id' => '%d', 'blog_id' => '%d', 'meta_id' => '%d', 'post_id' => '%d', 356 'user_status' => '%d', 'umeta_id' => '%d', 'comment_karma' => '%d', 'comment_count' => '%d', 357 // multisite: 358 'active' => '%d', 'cat_id' => '%d', 'deleted' => '%d', 'lang_id' => '%d', 'mature' => '%d', 'public' => '%d', 'site_id' => '%d', 'spam' => '%d', 359 ); 360 361 $prefix = $wpdb->set_prefix( $table_prefix ); 362 363 if ( is_wp_error( $prefix ) ) 364 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*/ ); 365 } 366 367 /** 368 * Starts the WordPress object cache. 369 * 370 * If an object-cache.php file exists in the wp-content directory, 371 * it uses that drop-in as an external object cache. 372 * 373 * @access private 374 * @since 3.0.0 375 */ 376 function wp_start_object_cache() { 377 global $_wp_using_ext_object_cache; 378 379 $first_init = false; 380 if ( ! function_exists( 'wp_cache_init' ) ) { 381 if ( file_exists( WP_CONTENT_DIR . '/object-cache.php' ) ) { 382 require_once ( WP_CONTENT_DIR . '/object-cache.php' ); 383 $_wp_using_ext_object_cache = true; 384 } else { 385 require_once ( ABSPATH . WPINC . '/cache.php' ); 386 $_wp_using_ext_object_cache = false; 387 } 388 $first_init = true; 389 } else if ( !$_wp_using_ext_object_cache && file_exists( WP_CONTENT_DIR . '/object-cache.php' ) ) { 390 // Sometimes advanced-cache.php can load object-cache.php before it is loaded here. 391 // This breaks the function_exists check above and can result in $_wp_using_ext_object_cache 392 // being set incorrectly. Double check if an external cache exists. 393 $_wp_using_ext_object_cache = true; 394 } 395 396 // If cache supports reset, reset instead of init if already initialized. 397 // Reset signals to the cache that global IDs have changed and it may need to update keys 398 // and cleanup caches. 399 if ( !$first_init && function_exists('wp_cache_reset') ) 400 wp_cache_reset(); 401 else 402 wp_cache_init(); 403 404 if ( function_exists( 'wp_cache_add_global_groups' ) ) { 405 wp_cache_add_global_groups( array( 'users', 'userlogins', 'usermeta', 'user_meta', 'site-transient', 'site-options', 'site-lookup', 'blog-lookup', 'blog-details', 'rss', 'global-posts' ) ); 406 wp_cache_add_non_persistent_groups( array( 'comment', 'counts', 'plugins' ) ); 407 } 408 } 409 410 /** 411 * Redirects to the installer if WordPress is not installed. 412 * 413 * Dies with an error message when multisite is enabled. 414 * 415 * @access private 416 * @since 3.0.0 417 */ 418 function wp_not_installed() { 419 if ( is_multisite() ) { 420 if ( ! is_blog_installed() && ! defined( 'WP_INSTALLING' ) ) 421 wp_die( __( 'The site you have requested is not installed properly. Please contact the system administrator.' ) ); 422 } elseif ( ! is_blog_installed() && false === strpos( $_SERVER['PHP_SELF'], 'install.php' ) && !defined( 'WP_INSTALLING' ) ) { 423 424 $link = wp_guess_url() . '/wp-admin/install.php'; 425 426 require( ABSPATH . WPINC . '/kses.php' ); 427 require( ABSPATH . WPINC . '/pluggable.php' ); 428 require( ABSPATH . WPINC . '/formatting.php' ); 429 wp_redirect( $link ); 430 die(); 431 } 432 } 433 434 /** 435 * Returns array of must-use plugin files to be included in global scope. 436 * 437 * The default directory is wp-content/mu-plugins. To change the default directory 438 * manually, define <code>WPMU_PLUGIN_DIR</code> and <code>WPMU_PLUGIN_URL</code> 439 * in wp-config.php. 440 * 441 * @access private 442 * @since 3.0.0 443 * @return array Files to include 444 */ 445 function wp_get_mu_plugins() { 446 $mu_plugins = array(); 447 if ( !is_dir( WPMU_PLUGIN_DIR ) ) 448 return $mu_plugins; 449 if ( ! $dh = opendir( WPMU_PLUGIN_DIR ) ) 450 return $mu_plugins; 451 while ( ( $plugin = readdir( $dh ) ) !== false ) { 452 if ( substr( $plugin, -4 ) == '.php' ) 453 $mu_plugins[] = WPMU_PLUGIN_DIR . '/' . $plugin; 454 } 455 closedir( $dh ); 456 sort( $mu_plugins ); 457 458 return $mu_plugins; 459 } 460 461 /** 462 * Returns array of plugin files to be included in global scope. 463 * 464 * The default directory is wp-content/plugins. To change the default directory 465 * manually, define <code>WP_PLUGIN_DIR</code> and <code>WP_PLUGIN_URL</code> 466 * in wp-config.php. 467 * 468 * @access private 469 * @since 3.0.0 470 * @return array Files to include 471 */ 472 function wp_get_active_and_valid_plugins() { 473 $plugins = array(); 474 $active_plugins = (array) get_option( 'active_plugins', array() ); 475 476 // Check for hacks file if the option is enabled 477 if ( get_option( 'hack_file' ) && file_exists( ABSPATH . 'my-hacks.php' ) ) { 478 _deprecated_file( 'my-hacks.php', '1.5' ); 479 array_unshift( $plugins, ABSPATH . 'my-hacks.php' ); 480 } 481 482 if ( empty( $active_plugins ) || defined( 'WP_INSTALLING' ) ) 483 return $plugins; 484 485 $network_plugins = is_multisite() ? wp_get_active_network_plugins() : false; 486 487 foreach ( $active_plugins as $plugin ) { 488 if ( ! validate_file( $plugin ) // $plugin must validate as file 489 && '.php' == substr( $plugin, -4 ) // $plugin must end with '.php' 490 && file_exists( WP_PLUGIN_DIR . '/' . $plugin ) // $plugin must exist 491 // not already included as a network plugin 492 && ( ! $network_plugins || ! in_array( WP_PLUGIN_DIR . '/' . $plugin, $network_plugins ) ) 493 ) 494 $plugins[] = WP_PLUGIN_DIR . '/' . $plugin; 495 } 496 return $plugins; 497 } 498 499 /** 500 * Sets internal encoding using mb_internal_encoding(). 501 * 502 * In most cases the default internal encoding is latin1, which is of no use, 503 * since we want to use the mb_ functions for utf-8 strings. 504 * 505 * @access private 506 * @since 3.0.0 507 */ 508 function wp_set_internal_encoding() { 509 if ( function_exists( 'mb_internal_encoding' ) ) { 510 if ( !@mb_internal_encoding( get_option( 'blog_charset' ) ) ) 511 mb_internal_encoding( 'UTF-8' ); 512 } 513 } 514 515 /** 516 * Add magic quotes to $_GET, $_POST, $_COOKIE, and $_SERVER. 517 * 518 * Also forces $_REQUEST to be $_GET + $_POST. If $_SERVER, $_COOKIE, 519 * or $_ENV are needed, use those superglobals directly. 520 * 521 * @access private 522 * @since 3.0.0 523 */ 524 function wp_magic_quotes() { 525 // If already slashed, strip. 526 if ( get_magic_quotes_gpc() ) { 527 $_GET = stripslashes_deep( $_GET ); 528 $_POST = stripslashes_deep( $_POST ); 529 $_COOKIE = stripslashes_deep( $_COOKIE ); 530 } 531 532 // Escape with wpdb. 533 $_GET = add_magic_quotes( $_GET ); 534 $_POST = add_magic_quotes( $_POST ); 535 $_COOKIE = add_magic_quotes( $_COOKIE ); 536 $_SERVER = add_magic_quotes( $_SERVER ); 537 538 // Force REQUEST to be GET + POST. 539 $_REQUEST = array_merge( $_GET, $_POST ); 540 } 541 542 /** 543 * Runs just before PHP shuts down execution. 544 * 545 * @access private 546 * @since 1.2.0 547 */ 548 function shutdown_action_hook() { 549 do_action( 'shutdown' ); 550 wp_cache_close(); 551 } 552 553 /** 554 * Copy an object. 555 * 556 * @since 2.7.0 557 * @deprecated 3.2 558 * 559 * @param object $object The object to clone 560 * @return object The cloned object 561 */ 562 563 function wp_clone( $object ) { 564 _deprecated_function( __FUNCTION__, '3.2' ); 565 566 return clone $object; 567 } 568 569 /** 570 * Whether the current request is for a network or blog admin page 571 * 572 * Does not inform on whether the user is an admin! Use capability checks to 573 * tell if the user should be accessing a section or not. 574 * 575 * @since 1.5.1 576 * 577 * @return bool True if inside WordPress administration pages. 578 */ 579 function is_admin() { 580 if ( defined( 'WP_ADMIN' ) ) 581 return WP_ADMIN; 582 return false; 583 } 584 585 /** 586 * Whether the current request is for a blog admin screen /wp-admin/ 587 * 588 * Does not inform on whether the user is a blog admin! Use capability checks to 589 * tell if the user should be accessing a section or not. 590 * 591 * @since 3.1.0 592 * 593 * @return bool True if inside WordPress network administration pages. 594 */ 595 function is_blog_admin() { 596 if ( defined( 'WP_BLOG_ADMIN' ) ) 597 return WP_BLOG_ADMIN; 598 return false; 599 } 600 601 /** 602 * Whether the current request is for a network admin screen /wp-admin/network/ 603 * 604 * Does not inform on whether the user is a network admin! Use capability checks to 605 * tell if the user should be accessing a section or not. 606 * 607 * @since 3.1.0 608 * 609 * @return bool True if inside WordPress network administration pages. 610 */ 611 function is_network_admin() { 612 if ( defined( 'WP_NETWORK_ADMIN' ) ) 613 return WP_NETWORK_ADMIN; 614 return false; 615 } 616 617 /** 618 * Whether the current request is for a user admin screen /wp-admin/user/ 619 * 620 * Does not inform on whether the user is an admin! Use capability checks to 621 * tell if the user should be accessing a section or not. 622 * 623 * @since 3.1.0 624 * 625 * @return bool True if inside WordPress user administration pages. 626 */ 627 function is_user_admin() { 628 if ( defined( 'WP_USER_ADMIN' ) ) 629 return WP_USER_ADMIN; 630 return false; 631 } 632 633 /** 634 * Whether Multisite support is enabled 635 * 636 * @since 3.0.0 637 * 638 * @return bool True if multisite is enabled, false otherwise. 639 */ 640 function is_multisite() { 641 if ( defined( 'MULTISITE' ) ) 642 return MULTISITE; 643 644 if ( defined( 'SUBDOMAIN_INSTALL' ) || defined( 'VHOST' ) || defined( 'SUNRISE' ) ) 645 return true; 646 647 return false; 648 } 649 650 ?>
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
| Generated: Wed Jun 1 08:30:02 2011 |
Cross-referenced by PHPXref 0.7 Provided by Yoast and awesome WordPress Hosting |