Commit Graph

104 Commits

Author SHA1 Message Date
Felix Arntz
1e4088fc98 Bootstrap/Load: Introduce fatal error recovery mechanism allowing users to still log in to their admin dashboard.
This changeset introduces a `WP_Shutdown_Handler` class that detects fatal errors and which extension (plugin or theme) causes them. Such an error is then recorded, and an error message is displayed. Subsequently, in certain protected areas, for example the admin, the broken extension will be paused, ensuring that the website is still usable in the respective area. The major benefit is that this mechanism allows site owners to still log in to their website, to fix the problem by either disabling the extension or solving the bug and then resuming the extension.

Extensions are only paused in certain designated areas. The frontend for example stays unaffected, as it is impossible to know what pausing the extension would cause to be missing, so it might be preferrable to clearly see that the website is temporarily not accessible instead.

The fatal error recovery is especially important in scope of encouraging the switch to a maintained PHP version, as not necessarily every WordPress extension is compatible with all PHP versions. If problems occur now, non-technical site owners that do not have immediate access to the codebase are not locked out of their site and can at least temporarily solve the problem quickly.

Websites that have custom requirements in that regard can implement their own shutdown handler by adding a `shutdown-handler.php` drop-in that returns the handler instance to use, which must be based on a class that inherits `WP_Shutdown_Handler`. That handler will then be used in place of the default one.

Websites that would like to modify specifically the error template displayed in the frontend can add a `php-error.php` drop-in that works similarly to the existing `db-error.php` drop-in.

Props afragen, bradleyt, flixos90, ocean90, schlessera, SergeyBiryukov, spacedmonkey.
Fixes #44458.

Built from https://develop.svn.wordpress.org/trunk@44524


git-svn-id: http://core.svn.wordpress.org/trunk@44355 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-01-09 20:05:49 +00:00
Sergey Biryukov
4a55ea5e68 Networks and Sites: In get_site_by_path(), use single domain and path parameters if there's only one item to look for.
This should increase the chances of `WP_Site_Query::get_sites()` hitting an existing cache.

Props spacedmonkey.
Fixes #42299.
Built from https://develop.svn.wordpress.org/trunk@42698


git-svn-id: http://core.svn.wordpress.org/trunk@42526 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2018-02-11 17:09:31 +00:00
Gary Pendergast
aaf99e6913 Code is Poetry.
WordPress' code just... wasn't.
This is now dealt with.

Props jrf, pento, netweb, GaryJ, jdgrimes, westonruter, Greg Sherwood from PHPCS, and everyone who's ever contributed to WPCS and PHPCS.
Fixes #41057.


Built from https://develop.svn.wordpress.org/trunk@42343


git-svn-id: http://core.svn.wordpress.org/trunk@42172 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2017-11-30 23:11:00 +00:00
Felix Arntz
f821106df8 Multisite: Use WP_Network_Query in ms_load_current_site_and_network().
This gets rid of the last readonly direct database query for networks in core. 🎉

Props spacedmonkey.
Fixes #41762.

Built from https://develop.svn.wordpress.org/trunk@41718


git-svn-id: http://core.svn.wordpress.org/trunk@41552 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2017-10-03 19:26:49 +00:00
Felix Arntz
f2d9abd022 Multisite: Introduce get_main_site_id().
This function can be used to easily get the main site ID of a given network via the optional `$network_id` parameter, which defaults to the current network. The existing `is_main_site()` now uses the new function internally and now accepts an optional `$network_id` parameter as well.

The main purpose of the new function at this point is to ensure that the `WP_Network::$blog_id` property is always set. Magic getters in the class have been adjusted to auto-fill the property when it is accessed and empty. Furthermore the function encapsulates logic that was previously part of `ms_load_current_site_and_network()` and has been replaced with a call to the function now.

Props spacedmonkey, jeremyfelt, johnjamesjacoby, flixos90.
Fixes #29684.

Built from https://develop.svn.wordpress.org/trunk@41380


git-svn-id: http://core.svn.wordpress.org/trunk@41213 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2017-09-15 11:15:52 +00:00
John Blackbourn
28eda6f4bc General: Improve terminology used when referring to installations of WordPress and its extensions.
"Install" is not a noun, and while it might be acceptable to use the verb as a noun, it is not correct. Using the correct
noun, "installation", increases clarity, especially for non-native English speakers.

This change fixes the usage in user-facing text and in developer documentation.

Fixes #41620

Built from https://develop.svn.wordpress.org/trunk@41289


git-svn-id: http://core.svn.wordpress.org/trunk@41129 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2017-08-22 11:52:48 +00:00
Jeremy Felt
555466ab82 Multisite: Replace get_blog_details() in inline documentation.
Some documentation is now out of date and some can be replaced with a mention of `get_site()`.

Fixes #37102.

Built from https://develop.svn.wordpress.org/trunk@38943


git-svn-id: http://core.svn.wordpress.org/trunk@38886 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-10-26 03:39:29 +00:00
Jeremy Felt
6e1c166dfb Multisite: Replace get_blog_details() in ms_site_check() with get_site().
Props flixos90.
Fixes #38357.

Built from https://develop.svn.wordpress.org/trunk@38904


git-svn-id: http://core.svn.wordpress.org/trunk@38847 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-10-25 05:55:30 +00:00
Jeremy Felt
1560fbcbc5 Multisite: Use get_network() and get_current_network_id() for current network data.
`get_network()` falls back to the current network when called without any arguments. Between this and `get_current_network_id()`, we can replace almost all instances of the global `$current_site` and all instances of `get_current_site()`.

This effectively deprecates `get_current_site()`, something that we'll do in a future ticket.

Props flixos90.
Fixes #37414.

Built from https://develop.svn.wordpress.org/trunk@38814


git-svn-id: http://core.svn.wordpress.org/trunk@38757 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-10-19 04:47:30 +00:00
Jeremy Felt
a9290f631b Multisite: Clarify that get_site_by_path() does not return exact matches.
Props stevenlinx.
Fixes #38152.

Built from https://develop.svn.wordpress.org/trunk@38781


git-svn-id: http://core.svn.wordpress.org/trunk@38724 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-10-12 01:10:29 +00:00
Jeremy Felt
5c038aefb3 Multisite: Ensure a consistent WP_Site return from get_site_by_path().
It is possible to short circuit `get_site_by_path()` using the `pre_get_site_by_path` filter. When this happens and a standard site object is provided, we can make sure it is upgraded to a proper `WP_Site` object before passing it on.

Props flixos90.
Fixes #37053.

Built from https://develop.svn.wordpress.org/trunk@38681


git-svn-id: http://core.svn.wordpress.org/trunk@38624 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-09-30 04:10:27 +00:00
Jeremy Felt
58bca49227 Multisite: Deprecate wp_get_network().
`wp_get_network()` was converted into a wrapper for `get_network()` in 4.6.0 and can now be deprecated.

This moves `wp_get_network()` to the bottom of `ms-load.php` as `ms-deprecated.php` is not available early enough.

Props PieWP, flixos90.
Fixes #37553.

Built from https://develop.svn.wordpress.org/trunk@38515


git-svn-id: http://core.svn.wordpress.org/trunk@38456 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-09-02 23:48:31 +00:00
John Blackbourn
ab052361a3 Docs: Correct and clarify various @since docs.
Fixes #37562

Built from https://develop.svn.wordpress.org/trunk@38201


git-svn-id: http://core.svn.wordpress.org/trunk@38142 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-08-04 22:54:31 +00:00
Drew Jaynes
e6267dcf19 Docs: Fix formatting, tense, verb conjugation, and other syntax for wp-includes/* elements introduced or changed in 4.6.
Part 2/2.

Fixes #37318.

Built from https://develop.svn.wordpress.org/trunk@38125


git-svn-id: http://core.svn.wordpress.org/trunk@38066 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-07-20 19:33:30 +00:00
Sergey Biryukov
139387b7e5 Docs: Use 3-digit, x.x.x-style semantic versioning for _doing_it_wrong(), _deprecated_function(), _deprecated_argument(), and _deprecated_file() throughout core.
Props metodiew.
Fixes #36495.
Built from https://develop.svn.wordpress.org/trunk@37985


git-svn-id: http://core.svn.wordpress.org/trunk@37926 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-07-06 12:40:29 +00:00
Jeremy Felt
4789f30c40 Multisite: Simplify logic assigning orderby in get_site_by_path().
Before [37628], there were 3 separate conditions for ordering by domain and/or path in `get_site_by_path()` that each resulted in it's own query. Now that `get_sites()` is used and supports `WP_Site_Query`, this can be simplified.

Props spacedmonkey.
Fixes #37215.

Built from https://develop.svn.wordpress.org/trunk@37930


git-svn-id: http://core.svn.wordpress.org/trunk@37871 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-06-30 16:59:29 +00:00
Jeremy Felt
31f2f68e82 Multisite: Replace wp_get_network() internals with get_network().
`get_network()` should be considered a replacement for `wp_get_network()`.

Props flixos90.
Fixes #32504.

Built from https://develop.svn.wordpress.org/trunk@37896


git-svn-id: http://core.svn.wordpress.org/trunk@37837 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-06-28 21:29:29 +00:00
Jeremy Felt
6f3f00ea97 Multisite: Change WP_Network id property to an integer.
For consistency and developer sanity.

Props flixos90.
Fixes #37050.

Built from https://develop.svn.wordpress.org/trunk@37870


git-svn-id: http://core.svn.wordpress.org/trunk@37811 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-06-26 14:26:29 +00:00
Jeremy Felt
460f4740a2 Multisite: Replace $wpdb->blog queries in get_site_by_path() with get_sites()
Props spacedmonkey, DrewAPicture.
See #35791.

Built from https://develop.svn.wordpress.org/trunk@37628


git-svn-id: http://core.svn.wordpress.org/trunk@37596 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-06-02 21:46:29 +00:00
Drew Jaynes
9cb5247392 Docs: Standardize filter docs in remaining wp-includes/* files to use third-person singular verbs per the inline documentation standards for PHP.
See #36913.

Built from https://develop.svn.wordpress.org/trunk@37518


git-svn-id: http://core.svn.wordpress.org/trunk@37486 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-05-22 18:50:28 +00:00
Jeremy Felt
19f988840f Multisite: Wrap the main bootstrap process in a function
Introduce `ms_load_current_site_and_network`. This is used by core during the multisite bootstrap process to populate the `$current_site` and `$current_blog` globals based on a requested domain and path.

Return values from this function inform `ms-settings.php` as to whether a page view should continue, `ms_not_installed()` should fire, or a redirect to a new location should occur.

This was previously a procedural block in `ms-settings.php`. Wrapping this code and providing specific return values allows us to write tests that do not rely on the manual and repeated inclusion of `ms-settings.php`.

This should not be used by plugins or themes. Please.

See #34941.

Built from https://develop.svn.wordpress.org/trunk@37475


git-svn-id: http://core.svn.wordpress.org/trunk@37443 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-05-20 20:57:28 +00:00
Sergey Biryukov
8919d9a88a I18N: Move translatable Codex URLs to separate strings in wp-includes/ms-load.php.
Props ramiy.
Fixes #34687.
Built from https://develop.svn.wordpress.org/trunk@35668


git-svn-id: http://core.svn.wordpress.org/trunk@35632 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-11-18 17:42:26 +00:00
Jeremy Felt
c0a3348487 Multisite: Clarify documentation for WP_Network::get_by_path().
See #31985.

Built from https://develop.svn.wordpress.org/trunk@35573


git-svn-id: http://core.svn.wordpress.org/trunk@35537 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-11-08 02:25:25 +00:00
Sergey Biryukov
80fdc4afba Don't use <a> in translatable string in wp-includes/ms-load.php.
Add translator commment.

Props ramiy.
Fixes #34506.
Built from https://develop.svn.wordpress.org/trunk@35453


git-svn-id: http://core.svn.wordpress.org/trunk@35417 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-10-30 09:16:25 +00:00
Drew Jaynes
217b661703 Docs: Add missing descriptions for the $wpdb global in DocBlocks all the places.
See #32246.

Built from https://develop.svn.wordpress.org/trunk@35170


git-svn-id: http://core.svn.wordpress.org/trunk@35136 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-10-14 23:44:25 +00:00
Jeremy Felt
9926983b66 Revert [34778], continue using _site_option() for the current network.
The `_network_option()` parameter order will be changing to accept `$network_id` first. The `_site_option()` functions will remain in use throughout core as our way of retrieving a network option for the current network.

See #28290.

Built from https://develop.svn.wordpress.org/trunk@34912


git-svn-id: http://core.svn.wordpress.org/trunk@34877 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-10-07 17:11:25 +00:00
Jeremy Felt
54512d64cb MS: Use *_network_option() functions throughout core.
Replaces all uses of `*_site_option()` with the corresponding "network" function.

This excludes one usage in `wp-admin/admin-footer.php` that needs more investigation.

Props spacedmonkey.
See #28290.

Built from https://develop.svn.wordpress.org/trunk@34778


git-svn-id: http://core.svn.wordpress.org/trunk@34743 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-10-02 19:08:26 +00:00
Jeremy Felt
fa1e1a8850 Multisite: Implement the get_by_path method in WP_Network.
Move the internals of `get_network_by_path()` to `WP_Network()` and allow network objects to be retrieved by passing a requested domain and path.

Props johnjamesjacoby, jeremyfelt, drewapicture, wonderboymusic.
See #31985.

Built from https://develop.svn.wordpress.org/trunk@34099


git-svn-id: http://core.svn.wordpress.org/trunk@34067 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-09-13 23:40:24 +00:00
Jeremy Felt
16b4096779 Multisite: Introduce the WP_Network class.
A `WP_Network` object initially matches a row from `wp_site` and is populated with additional properties used by WordPress core. The first iteration is used to retrieve an existing network based on data passed to the class.

* A network can be retrieved by its ID through `WP_Network::get_instance()`, following in the steps of `WP_Post` and `WP_Comment`.
* A network object can be created or completed by passing initial properties in as a standard object to `new WP_Network()`.

Using these methods, we are now able to populate the global `$current_site` during load via this class.

Props johnjamesjacoby, jeremyfelt, drewapicture, wonderboymusic.
See #31985.

Built from https://develop.svn.wordpress.org/trunk@34097


git-svn-id: http://core.svn.wordpress.org/trunk@34065 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-09-13 23:31:26 +00:00
Jeremy Felt
2762f019f7 Multisite: Correct ms_not_installed() @since version for new parameters
Props dimadin.
See 27264.

Built from https://develop.svn.wordpress.org/trunk@33999


git-svn-id: http://core.svn.wordpress.org/trunk@33968 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-09-10 16:21:26 +00:00
Jeremy Felt
7278744dd0 Multisite: Remove $domain and $path globals in ms_not_installed()
Further reduces the reliance on these unnecessary globals.

Fixes #27264.

Built from https://develop.svn.wordpress.org/trunk@33989


git-svn-id: http://core.svn.wordpress.org/trunk@33958 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-09-10 03:53:24 +00:00
Scott Taylor
4d26d999ce Fix doc blocks for ms-*.php files.
A few functions can return a conditional instead of an `if`/`else` of `true`/`false`.

See #32444.

Built from https://develop.svn.wordpress.org/trunk@32611


git-svn-id: http://core.svn.wordpress.org/trunk@32581 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-05-26 21:51:31 +00:00
Dominik Schilling
64fc7294b6 Use HTTPS URLs for codex.wordpress.org.
see #27115.
Built from https://develop.svn.wordpress.org/trunk@32116


git-svn-id: http://core.svn.wordpress.org/trunk@32095 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-04-12 21:29:32 +00:00
Dominik Schilling
502c70ec99 Remove <code> tags from translatable strings.
Uncomment deprecation notice for `get_bloginfo( 'text_direction' )`, see [14360].

props ramiy, DrewAPicture.
fixes #30614.
Built from https://develop.svn.wordpress.org/trunk@31899


git-svn-id: http://core.svn.wordpress.org/trunk@31878 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-03-26 15:17:28 +00:00
Jeremy Felt
3c4b95c1e3 Return HTTP status code 500 by default in ms_not_installed()
In admin views, specify a response code of 500 when using `wp_die()` to show an expanded message for a broken or missing multisite installation.

On front end views, use `dead_db()` rather than `die()` to generate the generic "Error establishing a database connection" message. `dead_db()` sets a status code of 500 by default and allows for the override of this generic error with a `db-error.php` template.

Props craig-ralston, jeremyfelt.

Fixes #30002.

Built from https://develop.svn.wordpress.org/trunk@31657


git-svn-id: http://core.svn.wordpress.org/trunk@31638 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-03-07 05:35:26 +00:00
Scott Taylor
5eb5afac34 For clarity, initialize some arrays that previously were only assigned via short circuit in loops.
See #30799.

Built from https://develop.svn.wordpress.org/trunk@30982


git-svn-id: http://core.svn.wordpress.org/trunk@30968 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-12-20 22:47:22 +00:00
Drew Jaynes
9955384dbe Ensure inline code is markdown-escaped as such, HTML tags are removed from summaries, and that code snippets in descriptions are properly indented.
Affects DocBlocks for the following core elements:
* Backtick-escape an HTML tag in the description for the `media_upload_mime_type_links()` hook
* Backtick-escape inline code in the description for `wp_get_active_network_plugins()`
* Remove HTML tags from the summaries for the `nav_menu_css_class`, `nav_menu_item_id`, and `nav_menu_link_attributes` hooks
* Backtick-escape HTML tags, add inline `@see` tags to parameter descriptions for the `nav_menu_css_class`, `nav_menu_item_id`, and `nav_menu_link_attributes` hooks

Props rarst.
See #30473.

Built from https://develop.svn.wordpress.org/trunk@30543


git-svn-id: http://core.svn.wordpress.org/trunk@30532 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-11-24 05:53:22 +00:00
Scott Taylor
05eeb16e30 Replace all uses of like_escape() with $wpdb->esc_like().
Props miqrogroove.
See #10041.

Built from https://develop.svn.wordpress.org/trunk@28712


git-svn-id: http://core.svn.wordpress.org/trunk@28528 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-06-10 00:44:15 +00:00
Sergey Biryukov
de9a9fd8ea Suggest get_current_site() as an alternative for get_current_site_name().
props jesin.
fixes #28346.
Built from https://develop.svn.wordpress.org/trunk@28573


git-svn-id: http://core.svn.wordpress.org/trunk@28398 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-05-25 14:32:16 +00:00
Scott Taylor
c96d7fff01 In get_network_by_path(), $exact_domains is unused.
See #27882.

Built from https://develop.svn.wordpress.org/trunk@28329


git-svn-id: http://core.svn.wordpress.org/trunk@28157 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-05-06 21:32:16 +00:00
Sergey Biryukov
d711c32138 Update deleted site message in ms_site_check().
props boonebgorges.
fixes #28150.
Built from https://develop.svn.wordpress.org/trunk@28321


git-svn-id: http://core.svn.wordpress.org/trunk@28149 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-05-06 18:46:15 +00:00
Andrew Nacin
e239dfad43 Multisite: Treat 'www' as a special subdomain, reversing 3.9 regression.
props jeremyfelt.
fixes #27927.

Built from https://develop.svn.wordpress.org/trunk@28280


git-svn-id: http://core.svn.wordpress.org/trunk@28108 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-05-06 05:32:36 +00:00
Andrew Nacin
827b92a9bd Formally deprecate wpmu_current_site().
props jeremyfelt.
fixes #27702.

Built from https://develop.svn.wordpress.org/trunk@28009


git-svn-id: http://core.svn.wordpress.org/trunk@27839 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-04-07 21:28:16 +00:00
Drew Jaynes
a4f4744a3b Inline documentation improvements in wp-includes/ms-load.php for 3.9 functionality.
Clarifies some mixed type parameters, spacing and comment style, and language fixes.

See #27700.

Built from https://develop.svn.wordpress.org/trunk@28006


git-svn-id: http://core.svn.wordpress.org/trunk@27836 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-04-07 20:59:15 +00:00
Andrew Nacin
4fb0aa5ecb In get_site_by_path(), avoid passing $paths through prepare(). If a path contains a %, we end up with problems. see #27003.
Built from https://develop.svn.wordpress.org/trunk@27439


git-svn-id: http://core.svn.wordpress.org/trunk@27286 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-03-06 18:18:15 +00:00
Andrew Nacin
0e9ef2491c Deprecate get_current_site_name(). see #27003.
Built from https://develop.svn.wordpress.org/trunk@27407


git-svn-id: http://core.svn.wordpress.org/trunk@27254 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-03-05 06:39:21 +00:00
Andrew Nacin
0523624d31 Doc fixes for wp_get_network().
props TobiasBg.
see #27003.

Built from https://develop.svn.wordpress.org/trunk@27381


git-svn-id: http://core.svn.wordpress.org/trunk@27230 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-03-03 18:56:14 +00:00
Andrew Nacin
ffc4ca7b01 Introduce get_site_by_path() and further rewrite the site detection process for multisite.
This is the first big step to supporting arbitrary domains and paths. In this new approach, sites are detected first where possible, then the network is inferred. Allows filtering for arbitrary path segments, smooths out some weirdness, and removes various restrictions. A sunrise plugin could do much of its work by adding filters, if those are even needed.

see #27003.

Built from https://develop.svn.wordpress.org/trunk@27359


git-svn-id: http://core.svn.wordpress.org/trunk@27209 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-03-02 22:25:14 +00:00
Mark Jaquith
79fbaf2e4c Fix a sometimes notice in wpmu_current_site()
props johnjamesjacoby. see #27003.
Built from https://develop.svn.wordpress.org/trunk@27275


git-svn-id: http://core.svn.wordpress.org/trunk@27131 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-02-25 20:53:13 +00:00
Andrew Nacin
eae1d5641d Multisite: Add get_network_by_path() and wp_get_network() to begin cleanup of multisite load.
Tries to get network detection under control by simplifying wpmu_current_site(). It now also pops off each subdomain to find a more general match. Adds unit tests for get_network_by_path() and a new network factory for unit tests.

Much of this is likely to change in 3.9 as more of ms-load.php and ms-settings.php gets hacked to bits.

props jeremyfelt.
see #27003.

Built from https://develop.svn.wordpress.org/trunk@27178


git-svn-id: http://core.svn.wordpress.org/trunk@27040 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-02-13 23:07:14 +00:00