web/wp-settings.php
branchwordpress
changeset 109 03b0d1493584
child 132 4d4862461b8d
equal deleted inserted replaced
-1:000000000000 109:03b0d1493584
       
     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*/'Votre serveur utilise la version %s de PHP mais WordPress nécéssite au moins la version 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*/'Votre installation PHP ne dispose pas de MySQL. Extension requise pour 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>ERREUR</strong>: la ligne <code>$table_prefix</code> du fichier <code>wp-config.php</code> ne doit contenir que des chiffres, lettres ou le caractère souligné.'/*/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 ?>