PageRenderTime 44ms CodeModel.GetById 15ms RepoModel.GetById 0ms app.codeStats 0ms

/wp-settings.php

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