Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Newer
Older
100644 246 lines (198 sloc) 8.516 kB
0bc8613 b2config.php replaced with wp-config.sample.php
mikelittle authored
1 <?php
2919fe2 That last thing didn't work at all.
matt authored
2 // Turn register globals off
dce5220 Typos and more secure unsetting. Hat tip: Stefen Esser
matt authored
3 function unregister_GLOBALS() {
4 if ( !ini_get('register_globals') )
5 return;
6
7 if ( isset($_REQUEST['GLOBALS']) )
4255794 Use wp_die(). Props filosofo. fixes #2914
ryan authored
8 wp_die('GLOBALS overwrite attempt detected');
dce5220 Typos and more secure unsetting. Hat tip: Stefen Esser
matt authored
9
10 // Variables that shouldn't be unset
11 $noUnset = array('GLOBALS', '_GET', '_POST', '_COOKIE', '_REQUEST', '_SERVER', '_ENV', '_FILES', 'table_prefix');
dd202ce Death to trailing tabs. Props Mark J. fixes #2405
ryan authored
12
dce5220 Typos and more secure unsetting. Hat tip: Stefen Esser
matt authored
13 $input = array_merge($_GET, $_POST, $_COOKIE, $_SERVER, $_ENV, $_FILES, isset($_SESSION) && is_array($_SESSION) ? $_SESSION : array());
14 foreach ( $input as $k => $v )
15 if ( !in_array($k, $noUnset) && isset($GLOBALS[$k]) )
16 unset($GLOBALS[$k]);
2919fe2 That last thing didn't work at all.
matt authored
17 }
877e6a7 Turn register globals off. Hat tip: Christian Schmidt
matt authored
18
dce5220 Typos and more secure unsetting. Hat tip: Stefen Esser
matt authored
19 unregister_GLOBALS();
20
21 unset( $wp_filter, $cache_userdata, $cache_lastcommentmodified, $cache_lastpostdate, $cache_settings, $category_cache, $cache_categories );
376ec4d Tweak
matt authored
22
85723b8 Object caching, round one.
ryan authored
23 if ( ! isset($blog_id) )
24 $blog_id = 1;
25
a18a23e Work around IIS' lack of REQUEST_URI
saxmatt authored
26 // Fix for IIS, which doesn't set REQUEST_URI
40a7d9d Fixes #1488
matt authored
27 if ( empty( $_SERVER['REQUEST_URI'] ) ) {
28 $_SERVER['REQUEST_URI'] = $_SERVER['SCRIPT_NAME']; // Does this work under CGI?
dd202ce Death to trailing tabs. Props Mark J. fixes #2405
ryan authored
29
720316d Do not touch REQUEST_URI if it is already set by the server.
rboren authored
30 // Append the query string if it exists and isn't null
31 if (isset($_SERVER['QUERY_STRING']) && !empty($_SERVER['QUERY_STRING'])) {
32 $_SERVER['REQUEST_URI'] .= '?' . $_SERVER['QUERY_STRING'];
33 }
12b4069 Fix REQUEST_URI construction for IIS. Bug 389. Patch from Dennis Wi…
rboren authored
34 }
a18a23e Work around IIS' lack of REQUEST_URI
saxmatt authored
35
c50e7da Fixes #1591 (again)
matt authored
36 // Fix for PHP as CGI hosts that set SCRIPT_FILENAME to something ending in php.cgi for all requests
c1ed565 Check if SCRIPT_FILENAME is set to avoid warnings. fixes #2227
ryan authored
37 if ( isset($_SERVER['SCRIPT_FILENAME']) && ( strpos($_SERVER['SCRIPT_FILENAME'], 'php.cgi') == strlen($_SERVER['SCRIPT_FILENAME']) - 7 ) )
c50e7da Fixes #1591 (again)
matt authored
38 $_SERVER['SCRIPT_FILENAME'] = $_SERVER['PATH_TRANSLATED'];
39
885ee8f This should fix permalinks, but may break the PHP as CGI funkiness again
matt authored
40 // Fix for Dreamhost and other PHP as CGI hosts
41 if ( strstr( $_SERVER['SCRIPT_NAME'], 'php.cgi' ) )
c50e7da Fixes #1591 (again)
matt authored
42 unset($_SERVER['PATH_INFO']);
43
38f4fca Move PHP_SELF setup to wp-settings.php. #2153
ryan authored
44 // Fix empty PHP_SELF
45 $PHP_SELF = $_SERVER['PHP_SELF'];
46 if ( empty($PHP_SELF) )
47 $_SERVER['PHP_SELF'] = $PHP_SELF = preg_replace("/(\?.*)?$/",'',$_SERVER["REQUEST_URI"]);
885ee8f This should fix permalinks, but may break the PHP as CGI funkiness again
matt authored
48
da4a0d9 Fix for empty plugin strings, class include moved for timing.
saxmatt authored
49 if ( !(phpversion() >= '4.1') )
fa1ec4e Don't wp_die() before functions.php is loaded.
ryan authored
50 die( 'Your server is running PHP version ' . phpversion() . ' but WordPress requires at least 4.1' );
da4a0d9 Fix for empty plugin strings, class include moved for timing.
saxmatt authored
51
0d040b3 Sanity check mysql.
saxmatt authored
52 if ( !extension_loaded('mysql') )
fa1ec4e Don't wp_die() before functions.php is loaded.
ryan authored
53 die( 'Your PHP installation appears to be missing the MySQL which is required for WordPress.' );
0d040b3 Sanity check mysql.
saxmatt authored
54
551e52f Code cleanup and some fixes from the WP Japan folks.
saxmatt authored
55 function timer_start() {
56 global $timestart;
57 $mtime = explode(' ', microtime() );
58 $mtime = $mtime[1] + $mtime[0];
59 $timestart = $mtime;
60 return true;
61 }
0f7bb42 timer_stop() wanted to be near timer_start().
ryan authored
62
63 function timer_stop($display = 0, $precision = 3) { //if called like timer_stop(1), will echo $timetotal
64 global $timestart, $timeend;
65 $mtime = microtime();
66 $mtime = explode(' ',$mtime);
67 $mtime = $mtime[1] + $mtime[0];
68 $timeend = $mtime;
69 $timetotal = $timeend-$timestart;
70 if ( $display )
71 echo number_format($timetotal,$precision);
72 return $timetotal;
73 }
551e52f Code cleanup and some fixes from the WP Japan folks.
saxmatt authored
74 timer_start();
da4a0d9 Fix for empty plugin strings, class include moved for timing.
saxmatt authored
75
9b09572 Turn down error reporting.
saxmatt authored
76 // Change to E_ALL for development/debugging
77 error_reporting(E_ALL ^ E_NOTICE);
78
70a449d Allow for plugins to kick in before everything if define in wp-config
saxmatt authored
79 // For an advanced caching plugin to use, static because you would only want one
80 if ( defined('WP_CACHE') )
81 require (ABSPATH . 'wp-content/advanced-cache.php');
82
edc7d7c Installation cleanup.
saxmatt authored
83 define('WPINC', 'wp-includes');
c84524f db.php instead of wp-db.php for pluggable DB load. #2721
ryan authored
84 if ( file_exists(ABSPATH . 'wp-content/db.php') )
85 require (ABSPATH . 'wp-content/db.php');
c01753a Allow pluggable wp-db. #2721
ryan authored
86 else
87 require_once (ABSPATH . WPINC . '/wp-db.php');
edc7d7c Installation cleanup.
saxmatt authored
88
25ae03e Giant commit, sorry mailing list people. Move all table names to new …
saxmatt authored
89 // Table names
2520d8e Include cleanups
saxmatt authored
90 $wpdb->posts = $table_prefix . 'posts';
91 $wpdb->users = $table_prefix . 'users';
92 $wpdb->categories = $table_prefix . 'categories';
93 $wpdb->post2cat = $table_prefix . 'post2cat';
94 $wpdb->comments = $table_prefix . 'comments';
e9c75f4 Bookmark/link rework. #2499
ryan authored
95 $wpdb->link2cat = $table_prefix . 'link2cat';
2520d8e Include cleanups
saxmatt authored
96 $wpdb->links = $table_prefix . 'links';
97 $wpdb->linkcategories = $table_prefix . 'linkcategories';
98 $wpdb->options = $table_prefix . 'options';
99 $wpdb->postmeta = $table_prefix . 'postmeta';
0c17753 Beginning of user system overhaul, TODO: update all code that deals w…
matt authored
100 $wpdb->usermeta = $table_prefix . 'usermeta';
25ae03e Giant commit, sorry mailing list people. Move all table names to new …
saxmatt authored
101
233afca Drafts clean up.
matt authored
102 $wpdb->prefix = $table_prefix;
103
2765f58 Allow for custom user table. If rewriting user functions need to incl…
saxmatt authored
104 if ( defined('CUSTOM_USER_TABLE') )
105 $wpdb->users = CUSTOM_USER_TABLE;
de9cc8b More user updates
matt authored
106 if ( defined('CUSTOM_USER_META_TABLE') )
107 $wpdb->usermeta = CUSTOM_USER_META_TABLE;
85723b8 Object caching, round one.
ryan authored
108
b1aee5c Another step toward removing old table vars, this is why we should be…
matt authored
109 // To be removed in 2.2
110 $tableposts = $tableusers = $tablecategories = $tablepost2cat = $tablecomments = $tablelink2cat = $tablelinks = $tablelinkcategories = $tableoptions = $tablepostmeta = '';
8fff608 Sometimes we need to keep things around.
saxmatt authored
111
85723b8 Object caching, round one.
ryan authored
112 if ( file_exists(ABSPATH . 'wp-content/object-cache.php') )
113 require (ABSPATH . 'wp-content/object-cache.php');
114 else
115 require (ABSPATH . WPINC . '/cache.php');
116
117 wp_cache_init();
118
9dc65ab Cleaning up some includes.
saxmatt authored
119 require (ABSPATH . WPINC . '/functions.php');
6d7717e Move plugin API to plugin.php. #2525
ryan authored
120 require (ABSPATH . WPINC . '/plugin.php');
81e7d92 Some filter action and cleanup
saxmatt authored
121 require (ABSPATH . WPINC . '/default-filters.php');
62927ab Remove wp- prefix from wp-l10n.php
ryan authored
122 require_once (ABSPATH . WPINC . '/l10n.php');
1bd4057 Bug fixes
saxmatt authored
123
8a751c5 Pluggable install functions. fixes #2616
ryan authored
124 if ( !is_blog_installed() && (!strstr($_SERVER['PHP_SELF'], 'install.php') && !defined('WP_INSTALLING')) ) {
ca2815f If we're already in wp-admin don't recursive link
saxmatt authored
125 if ( strstr($_SERVER['PHP_SELF'], 'wp-admin') )
126 $link = 'install.php';
127 else
128 $link = 'wp-admin/install.php';
4255794 Use wp_die(). Props filosofo. fixes #2914
ryan authored
129 wp_die(sprintf(__("It doesn't look like you've installed WP yet. Try running <a href='%s'>install.php</a>."), $link));
ca2815f If we're already in wp-admin don't recursive link
saxmatt authored
130 }
1bd4057 Bug fixes
saxmatt authored
131
c93efa8 Include file renames. #2525
ryan authored
132 require (ABSPATH . WPINC . '/formatting.php');
a6ade4a Role/capability system. Round one. Props: Owen Winkler
ryan authored
133 require (ABSPATH . WPINC . '/capabilities.php');
da4a0d9 Fix for empty plugin strings, class include moved for timing.
saxmatt authored
134 require (ABSPATH . WPINC . '/classes.php');
9303053 Move WP_Query and its wrapper functions to query.php. #2525
ryan authored
135 require (ABSPATH . WPINC . '/query.php');
40b2e61 Move theme functions to theme.php. #2525
ryan authored
136 require (ABSPATH . WPINC . '/theme.php');
c56e62f Move user functions to user.php. Relocate more post functions to pos…
ryan authored
137 require (ABSPATH . WPINC . '/user.php');
c93efa8 Include file renames. #2525
ryan authored
138 require (ABSPATH . WPINC . '/general-template.php');
139 require (ABSPATH . WPINC . '/link-template.php');
c56e62f Move user functions to user.php. Relocate more post functions to pos…
ryan authored
140 require (ABSPATH . WPINC . '/author-template.php');
3c8ed76 Reworg post/page/attachment functions. #2525
ryan authored
141 require (ABSPATH . WPINC . '/post.php');
142 require (ABSPATH . WPINC . '/post-template.php');
0f5dc0f Reorg category functions. #2525
ryan authored
143 require (ABSPATH . WPINC . '/category.php');
144 require (ABSPATH . WPINC . '/category-template.php');
6027cfa Reorg comment functions. #2525
ryan authored
145 require (ABSPATH . WPINC . '/comment.php');
146 require (ABSPATH . WPINC . '/comment-template.php');
6970a75 Rewrite API additions and improvements from David House. #2433
ryan authored
147 require (ABSPATH . WPINC . '/rewrite.php');
c93efa8 Include file renames. #2525
ryan authored
148 require (ABSPATH . WPINC . '/feed.php');
19ea5fb Reorg bookmark functions. #2525
ryan authored
149 require (ABSPATH . WPINC . '/bookmark.php');
150 require (ABSPATH . WPINC . '/bookmark-template.php');
9dc65ab Cleaning up some includes.
saxmatt authored
151 require (ABSPATH . WPINC . '/kses.php');
fb1e531 Cron improvements from masquerade. #2425
ryan authored
152 require (ABSPATH . WPINC . '/cron.php');
2520d8e Include cleanups
saxmatt authored
153 require (ABSPATH . WPINC . '/version.php');
ca92bb4 Move deprecated functions to deprecated.php. #2520
ryan authored
154 require (ABSPATH . WPINC . '/deprecated.php');
4d49e98 Script loader from mdawaffe. #2701
ryan authored
155 require (ABSPATH . WPINC . '/script-loader.php');
da4a0d9 Fix for empty plugin strings, class include moved for timing.
saxmatt authored
156
16aa6ae New import system. Very rough draft.
ryan authored
157 if (!strstr($_SERVER['PHP_SELF'], 'install.php')) :
a2342f1 Define COOKIEHASH and new get_profile function. TODO: re-org function…
saxmatt authored
158 // Used to guarantee unique hash cookies
849a0d2 Use get_option instead of get_settings. Just 'cause.
ryan authored
159 $cookiehash = md5(get_option('siteurl')); // Remove in 1.4
a2342f1 Define COOKIEHASH and new get_profile function. TODO: re-org function…
saxmatt authored
160 define('COOKIEHASH', $cookiehash);
161 endif;
5c97b54 Smilie fix from Jaykul, changed fool's siteurl fix to use faster preg…
saxmatt authored
162
41afea2 Let advanced users override cookies.
matt authored
163 if ( !defined('USER_COOKIE') )
164 define('USER_COOKIE', 'wordpressuser_'. COOKIEHASH);
165 if ( !defined('PASS_COOKIE') )
166 define('PASS_COOKIE', 'wordpresspass_'. COOKIEHASH);
167 if ( !defined('COOKIEPATH') )
849a0d2 Use get_option instead of get_settings. Just 'cause.
ryan authored
168 define('COOKIEPATH', preg_replace('|https?://[^/]+|i', '', get_option('home') . '/' ) );
41afea2 Let advanced users override cookies.
matt authored
169 if ( !defined('SITECOOKIEPATH') )
849a0d2 Use get_option instead of get_settings. Just 'cause.
ryan authored
170 define('SITECOOKIEPATH', preg_replace('|https?://[^/]+|i', '', get_option('siteurl') . '/' ) );
41afea2 Let advanced users override cookies.
matt authored
171 if ( !defined('COOKIE_DOMAIN') )
172 define('COOKIE_DOMAIN', false);
173
9dc65ab Cleaning up some includes.
saxmatt authored
174 require (ABSPATH . WPINC . '/vars.php');
edc7d7c Installation cleanup.
saxmatt authored
175
c26991b Move hack file include.
saxmatt authored
176 // Check for hacks file if the option is enabled
849a0d2 Use get_option instead of get_settings. Just 'cause.
ryan authored
177 if (get_option('hack_file')) {
c26991b Move hack file include.
saxmatt authored
178 if (file_exists(ABSPATH . '/my-hacks.php'))
179 require(ABSPATH . '/my-hacks.php');
180 }
181
849a0d2 Use get_option instead of get_settings. Just 'cause.
ryan authored
182 if ( get_option('active_plugins') ) {
183 $current_plugins = get_option('active_plugins');
11f5bb3 Add a precautionary is_array() check around the plugin loading loop. …
ryan authored
184 if ( is_array($current_plugins) ) {
185 foreach ($current_plugins as $plugin) {
186 if ('' != $plugin && file_exists(ABSPATH . 'wp-content/plugins/' . $plugin))
187 include_once(ABSPATH . 'wp-content/plugins/' . $plugin);
188 }
e733249 Functional plugin implementation.
saxmatt authored
189 }
190 }
1127059 shutdown action hook.
saxmatt authored
191
c93efa8 Include file renames. #2525
ryan authored
192 require (ABSPATH . WPINC . '/pluggable.php');
08b02d9 Move plugin replacebale functions to pluggable-functions.php. http:/…
ryan authored
193
70a449d Allow for plugins to kick in before everything if define in wp-config
saxmatt authored
194 if ( defined('WP_CACHE') && function_exists('wp_cache_postload') )
195 wp_cache_postload();
196
197 do_action('plugins_loaded');
198
91efba1 Use wpdb->escape instead of addslashes to prepare DB bound data.
ryan authored
199 // If already slashed, strip.
200 if ( get_magic_quotes_gpc() ) {
6cbb6fe Stripslashes doesn't work on arrays. Add stripslashes_deep(). Props…
ryan authored
201 $_GET = stripslashes_deep($_GET );
202 $_POST = stripslashes_deep($_POST );
203 $_COOKIE = stripslashes_deep($_COOKIE);
65bbec7 Comments refactoring and cleanup
saxmatt authored
204 }
205
91efba1 Use wpdb->escape instead of addslashes to prepare DB bound data.
ryan authored
206 // Escape with wpdb.
207 $_GET = add_magic_quotes($_GET );
208 $_POST = add_magic_quotes($_POST );
209 $_COOKIE = add_magic_quotes($_COOKIE);
210 $_SERVER = add_magic_quotes($_SERVER);
211
1034767 wp_get_current_commenter()
ryan authored
212 do_action('sanitize_comment_cookies');
213
06a0fc3 Formatting
matt authored
214 $wp_query = new WP_Query();
1baf503 Break blog header up into functional chunks. Stick it all in a WP cl…
ryan authored
215 $wp_rewrite = new WP_Rewrite();
06a0fc3 Formatting
matt authored
216 $wp = new WP();
1baf503 Break blog header up into functional chunks. Stick it all in a WP cl…
ryan authored
217
978fc18 Tweak theme validation.
ryan authored
218 validate_current_theme();
98aa7f5 Rearrange load order. Init classes before loading the text domain an…
ryan authored
219 define('TEMPLATEPATH', get_template_directory());
b55b6aa Allow stylesheet only themes to provide functions.php. Props skeltoa…
ryan authored
220 define('STYLESHEETPATH', get_stylesheet_directory());
98aa7f5 Rearrange load order. Init classes before loading the text domain an…
ryan authored
221
222 // Load the default text localization domain.
223 load_default_textdomain();
224
225 // Pull in locale data after loading text domain.
226 require_once(ABSPATH . WPINC . '/locale.php');
227
3d2347a WP_Locale. Props Sewar. fixes #2568
ryan authored
228 $wp_locale = new WP_Locale();
229
c369310 Better support for theme plugins. add_theme_page() and active theme …
ryan authored
230 // Load functions for active theme.
b55b6aa Allow stylesheet only themes to provide functions.php. Props skeltoa…
ryan authored
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');
c369310 Better support for theme plugins. add_theme_page() and active theme …
ryan authored
235
98aa7f5 Rearrange load order. Init classes before loading the text domain an…
ryan authored
236 function shutdown_action_hook() {
237 do_action('shutdown');
84da5fc Save cache after the shutdown hook runs. fixes #2232
ryan authored
238 wp_cache_close();
98aa7f5 Rearrange load order. Init classes before loading the text domain an…
ryan authored
239 }
240 register_shutdown_function('shutdown_action_hook');
241
1baf503 Break blog header up into functional chunks. Stick it all in a WP cl…
ryan authored
242 // Everything is loaded and initialized.
9838608 Allow multiple args to be passed to apply_filters and do_action. Mov…
rboren authored
243 do_action('init');
06a0fc3 Formatting
matt authored
244
4d49e98 Script loader from mdawaffe. #2701
ryan authored
245 ?>
Something went wrong with that request. Please try again.