PageRenderTime 49ms CodeModel.GetById 20ms RepoModel.GetById 0ms app.codeStats 0ms

/wp-settings.php

https://bitbucket.org/crypticrod/sr_wp_code
PHP | 324 lines | 149 code | 63 blank | 112 comment | 18 complexity | edecd46711c5e43910805d744c36d26f MD5 | raw file
Possible License(s): AGPL-1.0, GPL-2.0, LGPL-2.1, GPL-3.0, LGPL-2.0, AGPL-3.0
  1. <?php
  2. /**
  3. * Used to set up and fix common variables and include
  4. * the WordPress procedural and class library.
  5. *
  6. * Allows for some configuration in wp-config.php (see default-constants.php)
  7. *
  8. * @internal This file must be parsable by PHP4.
  9. *
  10. * @package WordPress
  11. */
  12. /**
  13. * Stores the location of the WordPress directory of functions, classes, and core content.
  14. *
  15. * @since 1.0.0
  16. */
  17. define( 'WPINC', 'wp-includes' );
  18. // Include files required for initialization.
  19. require( ABSPATH . WPINC . '/load.php' );
  20. require( ABSPATH . WPINC . '/default-constants.php' );
  21. require( ABSPATH . WPINC . '/version.php' );
  22. // Set initial default constants including WP_MEMORY_LIMIT, WP_MAX_MEMORY_LIMIT, WP_DEBUG, WP_CONTENT_DIR and WP_CACHE.
  23. wp_initial_constants( );
  24. // Check for the required PHP version and for the MySQL extension or a database drop-in.
  25. wp_check_php_mysql_versions();
  26. // Disable magic quotes at runtime. Magic quotes are added using wpdb later in wp-settings.php.
  27. set_magic_quotes_runtime( 0 );
  28. @ini_set( 'magic_quotes_sybase', 0 );
  29. // Set default timezone in PHP 5.
  30. if ( function_exists( 'date_default_timezone_set' ) )
  31. date_default_timezone_set( 'UTC' );
  32. // Turn register_globals off.
  33. wp_unregister_GLOBALS();
  34. // Ensure these global variables do not exist so they do not interfere with WordPress.
  35. unset( $wp_filter, $cache_lastcommentmodified );
  36. // Standardize $_SERVER variables across setups.
  37. wp_fix_server_vars();
  38. // Check if we have received a request due to missing favicon.ico
  39. wp_favicon_request();
  40. // Check if we're in maintenance mode.
  41. wp_maintenance();
  42. // Start loading timer.
  43. timer_start();
  44. // Check if we're in WP_DEBUG mode.
  45. wp_debug_mode();
  46. // For an advanced caching plugin to use. Uses a static drop-in because you would only want one.
  47. if ( WP_CACHE )
  48. WP_DEBUG ? include( WP_CONTENT_DIR . '/advanced-cache.php' ) : @include( WP_CONTENT_DIR . '/advanced-cache.php' );
  49. // Define WP_LANG_DIR if not set.
  50. wp_set_lang_dir();
  51. // Load early WordPress files.
  52. require( ABSPATH . WPINC . '/compat.php' );
  53. require( ABSPATH . WPINC . '/functions.php' );
  54. require( ABSPATH . WPINC . '/class-wp.php' );
  55. require( ABSPATH . WPINC . '/class-wp-error.php' );
  56. require( ABSPATH . WPINC . '/plugin.php' );
  57. // Include the wpdb class and, if present, a db.php database drop-in.
  58. require_wp_db();
  59. // Set the database table prefix and the format specifiers for database table columns.
  60. wp_set_wpdb_vars();
  61. // Start the WordPress object cache, or an external object cache if the drop-in is present.
  62. wp_start_object_cache();
  63. // Load early WordPress files.
  64. require( ABSPATH . WPINC . '/default-filters.php' );
  65. require( ABSPATH . WPINC . '/pomo/mo.php' );
  66. // Initialize multisite if enabled.
  67. if ( is_multisite() ) {
  68. require( ABSPATH . WPINC . '/ms-blogs.php' );
  69. require( ABSPATH . WPINC . '/ms-settings.php' );
  70. } elseif ( ! defined( 'MULTISITE' ) ) {
  71. define( 'MULTISITE', false );
  72. }
  73. // Stop most of WordPress from being loaded if we just want the basics.
  74. if ( SHORTINIT )
  75. return false;
  76. // Load the l18n library.
  77. require( ABSPATH . WPINC . '/l10n.php' );
  78. // Run the installer if WordPress is not installed.
  79. wp_not_installed();
  80. // Load most of WordPress.
  81. require( ABSPATH . WPINC . '/class-wp-walker.php' );
  82. require( ABSPATH . WPINC . '/class-wp-ajax-response.php' );
  83. require( ABSPATH . WPINC . '/formatting.php' );
  84. require( ABSPATH . WPINC . '/capabilities.php' );
  85. require( ABSPATH . WPINC . '/query.php' );
  86. require( ABSPATH . WPINC . '/theme.php' );
  87. require( ABSPATH . WPINC . '/user.php' );
  88. require( ABSPATH . WPINC . '/meta.php' );
  89. require( ABSPATH . WPINC . '/general-template.php' );
  90. require( ABSPATH . WPINC . '/link-template.php' );
  91. require( ABSPATH . WPINC . '/author-template.php' );
  92. require( ABSPATH . WPINC . '/post.php' );
  93. require( ABSPATH . WPINC . '/post-template.php' );
  94. require( ABSPATH . WPINC . '/category.php' );
  95. require( ABSPATH . WPINC . '/category-template.php' );
  96. require( ABSPATH . WPINC . '/comment.php' );
  97. require( ABSPATH . WPINC . '/comment-template.php' );
  98. require( ABSPATH . WPINC . '/rewrite.php' );
  99. require( ABSPATH . WPINC . '/feed.php' );
  100. require( ABSPATH . WPINC . '/bookmark.php' );
  101. require( ABSPATH . WPINC . '/bookmark-template.php' );
  102. require( ABSPATH . WPINC . '/kses.php' );
  103. require( ABSPATH . WPINC . '/cron.php' );
  104. require( ABSPATH . WPINC . '/deprecated.php' );
  105. require( ABSPATH . WPINC . '/script-loader.php' );
  106. require( ABSPATH . WPINC . '/taxonomy.php' );
  107. require( ABSPATH . WPINC . '/update.php' );
  108. require( ABSPATH . WPINC . '/canonical.php' );
  109. require( ABSPATH . WPINC . '/shortcodes.php' );
  110. require( ABSPATH . WPINC . '/media.php' );
  111. require( ABSPATH . WPINC . '/http.php' );
  112. require( ABSPATH . WPINC . '/class-http.php' );
  113. require( ABSPATH . WPINC . '/widgets.php' );
  114. require( ABSPATH . WPINC . '/nav-menu.php' );
  115. require( ABSPATH . WPINC . '/nav-menu-template.php' );
  116. require( ABSPATH . WPINC . '/admin-bar.php' );
  117. // Load multisite-specific files.
  118. if ( is_multisite() ) {
  119. require( ABSPATH . WPINC . '/ms-functions.php' );
  120. require( ABSPATH . WPINC . '/ms-default-filters.php' );
  121. require( ABSPATH . WPINC . '/ms-deprecated.php' );
  122. }
  123. // Define constants that rely on the API to obtain the default value.
  124. // Define must-use plugin directory constants, which may be overridden in the sunrise.php drop-in.
  125. wp_plugin_directory_constants( );
  126. // Load must-use plugins.
  127. foreach ( wp_get_mu_plugins() as $mu_plugin ) {
  128. include_once( $mu_plugin );
  129. }
  130. unset( $mu_plugin );
  131. // Load network activated plugins.
  132. if ( is_multisite() ) {
  133. foreach( wp_get_active_network_plugins() as $network_plugin ) {
  134. include_once( $network_plugin );
  135. }
  136. unset( $network_plugin );
  137. }
  138. do_action( 'muplugins_loaded' );
  139. if ( is_multisite() )
  140. ms_cookie_constants( );
  141. // Define constants after multisite is loaded. Cookie-related constants may be overridden in ms_network_cookies().
  142. wp_cookie_constants( );
  143. // Define and enforce our SSL constants
  144. wp_ssl_constants( );
  145. // Create common globals.
  146. require( ABSPATH . WPINC . '/vars.php' );
  147. // Make taxonomies and posts available to plugins and themes.
  148. // @plugin authors: warning: these get registered again on the init hook.
  149. create_initial_taxonomies();
  150. create_initial_post_types();
  151. // Register the default theme directory root
  152. register_theme_directory( get_theme_root() );
  153. // Load active plugins.
  154. foreach ( wp_get_active_and_valid_plugins() as $plugin )
  155. include_once( $plugin );
  156. unset( $plugin );
  157. // Load pluggable functions.
  158. require( ABSPATH . WPINC . '/pluggable.php' );
  159. require( ABSPATH . WPINC . '/pluggable-deprecated.php' );
  160. // Set internal encoding.
  161. wp_set_internal_encoding();
  162. // Run wp_cache_postload() if object cache is enabled and the function exists.
  163. if ( WP_CACHE && function_exists( 'wp_cache_postload' ) )
  164. wp_cache_postload();
  165. do_action( 'plugins_loaded' );
  166. // Define constants which affect functionality if not already defined.
  167. wp_functionality_constants( );
  168. // Add magic quotes and set up $_REQUEST ( $_GET + $_POST )
  169. wp_magic_quotes();
  170. do_action( 'sanitize_comment_cookies' );
  171. /**
  172. * WordPress Query object
  173. * @global object $wp_the_query
  174. * @since 2.0.0
  175. */
  176. $wp_the_query = new WP_Query();
  177. /**
  178. * Holds the reference to @see $wp_the_query
  179. * Use this global for WordPress queries
  180. * @global object $wp_query
  181. * @since 1.5.0
  182. */
  183. $wp_query =& $wp_the_query;
  184. /**
  185. * Holds the WordPress Rewrite object for creating pretty URLs
  186. * @global object $wp_rewrite
  187. * @since 1.5.0
  188. */
  189. $wp_rewrite = new WP_Rewrite();
  190. /**
  191. * WordPress Object
  192. * @global object $wp
  193. * @since 2.0.0
  194. */
  195. $wp = new WP();
  196. /**
  197. * WordPress Widget Factory Object
  198. * @global object $wp_widget_factory
  199. * @since 2.8.0
  200. */
  201. $wp_widget_factory = new WP_Widget_Factory();
  202. do_action( 'setup_theme' );
  203. // Define the template related constants.
  204. wp_templating_constants( );
  205. // Load the default text localization domain.
  206. load_default_textdomain();
  207. // Find the blog locale.
  208. $locale = get_locale();
  209. $locale_file = WP_LANG_DIR . "/$locale.php";
  210. if ( ( 0 === validate_file( $locale ) ) && is_readable( $locale_file ) )
  211. require( $locale_file );
  212. unset($locale_file);
  213. // Pull in locale data after loading text domain.
  214. require( ABSPATH . WPINC . '/locale.php' );
  215. /**
  216. * WordPress Locale object for loading locale domain date and various strings.
  217. * @global object $wp_locale
  218. * @since 2.1.0
  219. */
  220. $wp_locale = new WP_Locale();
  221. // Load the functions for the active theme, for both parent and child theme if applicable.
  222. if ( ! defined( 'WP_INSTALLING' ) || 'wp-activate.php' === $pagenow ) {
  223. if ( TEMPLATEPATH !== STYLESHEETPATH && file_exists( STYLESHEETPATH . '/functions.php' ) )
  224. include( STYLESHEETPATH . '/functions.php' );
  225. if ( file_exists( TEMPLATEPATH . '/functions.php' ) )
  226. include( TEMPLATEPATH . '/functions.php' );
  227. }
  228. do_action( 'after_setup_theme' );
  229. // Load any template functions the theme supports.
  230. require_if_theme_supports( 'post-thumbnails', ABSPATH . WPINC . '/post-thumbnail-template.php' );
  231. register_shutdown_function( 'shutdown_action_hook' );
  232. // Set up current user.
  233. $wp->init();
  234. /**
  235. * Most of WP is loaded at this stage, and the user is authenticated. WP continues
  236. * to load on the init hook that follows (e.g. widgets), and many plugins instantiate
  237. * themselves on it for all sorts of reasons (e.g. they need a user, a taxonomy, etc.).
  238. *
  239. * If you wish to plug an action once WP is loaded, use the wp_loaded hook below.
  240. */
  241. do_action( 'init' );
  242. // Check site status
  243. if ( is_multisite() ) {
  244. if ( true !== ( $file = ms_site_check() ) ) {
  245. require( $file );
  246. die();
  247. }
  248. unset($file);
  249. }
  250. /**
  251. * This hook is fired once WP, all plugins, and the theme are fully loaded and instantiated.
  252. *
  253. * AJAX requests should use wp-admin/admin-ajax.php. admin-ajax.php can handle requests for
  254. * users not logged in.
  255. *
  256. * @link http://codex.wordpress.org/AJAX_in_Plugins
  257. *
  258. * @since 3.0.0
  259. */
  260. do_action('wp_loaded');
  261. ?>