Commit Graph

66 Commits

Author SHA1 Message Date
Felix Arntz 2b10923a28 Multisite: Introduce a site initialization and uninitialization API.
This changeset makes the new CRUD API for sites introduced in [43548] usable for real-world sites. A new function `wp_initialize_site()`, which takes care of creating a site's database tables and populating them with initial values, is hooked into the site insertion process that is initiated when calling `wp_insert_site()`. Similarly, a new function `wp_uninitialize_site()`, which takes care of dropping a site's database tables, is hooked into the site deletion process that is initiated when calling `wp_delete_site()`.

A new function `wp_is_site_initialized()` completes the API, allowing to check whether a site is initialized. Since this function always makes a database request in its default behavior, it should be called with caution. Plugins that would like to use site initialization in special ways can leverage a `pre_wp_is_site_initialized` filter to alter that default behavior.

The separate handling of the site's row in the `wp_blogs` database table and the actual site setup allows for more flexibility in controlling whether or how a site's data is set up. For example, a unit test that only checks data from the site's database table row can unhook the site initialization process to improve performance. At the same time, developers consuming the new sites API only need to know about the CRUD functions, since the initialization and uninitialization processes happen internally.

With this changeset, the foundation for a sites REST API endpoint is fully available. The previously recommended functions `wpmu_create_blog()` and `wpmu_delete_blog()` now call the new respective function internally. Further follow-up work to this includes replacing calls to `wpmu_create_blog()` with `wp_insert_site()`, `update_blog_details()` with `wp_update_site()` and `wpmu_delete_blog()` with `wp_delete_blog()` throughout the codebase.

As a side-effect of this work, the `wpmu_new_blog`, `delete_blog`, and `deleted_blog` actions and the `install_blog()` function have been deprecated.

Fixes #41333. See #40364.

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


git-svn-id: http://core.svn.wordpress.org/trunk@43483 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2018-09-24 15:09:26 +00:00
Felix Arntz 9e2e491f1f Multisite: Complete the new CRUD API for managing sites.
New functions `wp_insert_site( $data )`, `wp_update_site( $id, $data )` and `wp_delete_site( $id )` are introduced to manage site rows in the `wp_blogs` table, forming the new CRUD API together with the existing `get_site()` / `get_sites()`. The new API provides various benefits over the previously existing API, fixing several cache invalidation issues and being hook-driven so that normalization and validation of the passed data can be fully customized.

New hooks introduced as part of this are the actions `wp_insert_site`, `wp_update_site`, `wp_delete_site`, `wp_validate_site_data` and the filter `wp_normalize_site_data`.

At this point, `wp_insert_site()` does not handle setting up the site's database tables, and `wp_delete_site()` does not handle dropping the site's database tables, so the two can not yet be used directly as full replacements of `wpmu_create_blog()` and `wpmu_delete_blog()`. Managing the site's database tables will be added via hooks as part of the follow-up ticket #41333.

The existing functions `wpmu_create_blog()`, `update_blog_details()`, and `wpmu_delete_blog()` make use of the respective new counterpart and will be obsolete once #41333 has been completed.

Props flixos90, jeremyfelt, spacedmonkey.
Fixes #40364.

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


git-svn-id: http://core.svn.wordpress.org/trunk@43377 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2018-08-01 13:06:26 +00:00
John Blackbourn 2ad86e1e82 Docs: Correct some `@since MU` notation that was broken in [41200].
Every function introduced by MU was introduced in 3.0.0 as this was when MU was merged.

See #41509

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


git-svn-id: http://core.svn.wordpress.org/trunk@41548 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2017-10-03 17:44:48 +00:00
Jeremy Felt 5ccf8eebb7 Multisite: Deprecate `is_user_option_local()`.
`is_user_option_local()` was added during MU development and used for a handful of changesets before the code using it was removed again. It has not been used by MU or core since nor is it widely used elsewhere.

Fixes #41697.
Props bnap00, jeremyfelt.

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


git-svn-id: http://core.svn.wordpress.org/trunk@41502 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2017-10-02 03:38:45 +00:00
Jeremy Felt b47cf7330c Multisite: Use `get_networks()` instead of a direct query in `get_admin_users_for_domain()`.
Props spacedmonkey.
Fixes #41806.

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


git-svn-id: http://core.svn.wordpress.org/trunk@41498 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2017-10-02 03:06:47 +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
Felix Arntz 473e1ba73b Multisite: Remove references to `$wpdb->siteid` and use `get_current_network_id()` instead.
Props sathyapulse, spacedmonkey.
Fixes #41507.

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


git-svn-id: http://core.svn.wordpress.org/trunk@41082 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2017-08-12 13:11:43 +00:00
Felix Arntz 820d3973a3 Multisite: Rename internal `$site_id` variables referencing networks to `$network_id`.
This change improves code clarity by using the current naming conventions for networks.

Props lemacarl.
Fixes #41510.

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


git-svn-id: http://core.svn.wordpress.org/trunk@41081 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2017-08-12 12:48:47 +00:00
Drew Jaynes 0401cee8b3 Docs: Reduce confusion in `@since MU` notationss by indicating the WP version (3.0.0) the code was merged into core while retaining the original context.
Props sathyapulse.
Fixes #41509.

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


git-svn-id: http://core.svn.wordpress.org/trunk@41040 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2017-08-01 20:44:43 +00:00
Drew Jaynes acea6cbad8 Improve the usefulness of several `_deprecated_function()` calls by passing known replacement functions, methods, or hooks.
Props jrf.
See #41121.

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


git-svn-id: http://core.svn.wordpress.org/trunk@40779 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2017-06-25 00:05:44 +00:00
Drew Jaynes 3a6985de96 Docs: Standardize and add missing deprecation notations in DocBlocks for the following functions:
* `post_form_autocomplete_off()`
* `_rotate_image_resource()`
* `_flip_image_resource()`
* `wp_get_sites()`
* `deactivate_sitewide_plugin()`

Props jrf.
See #41121.

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


git-svn-id: http://core.svn.wordpress.org/trunk@40772 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2017-06-22 17:48:45 +00:00
Felix Arntz a212ed8e25 Multisite: Fix `wp_get_sites()` to return an unlimited amount of sites when passing a falsy `limit` argument.
Props iandunn for the original patch.
Fixes #39879. See #35791.

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


git-svn-id: http://core.svn.wordpress.org/trunk@40279 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2017-04-05 02:18:43 +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 749b480de0 Multisite: Replace `get_blog_details()` with `get_site()` in `get_dashboard_blog()`.
Props dipesh.kakadiya.
Fixes #38353.

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


git-svn-id: http://core.svn.wordpress.org/trunk@38845 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-10-25 05:05:33 +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
Scott Taylor cabb4a03c8 Multisite: use `get_current_site()` instead of `$GLOBALS['current_site']` (stop yelling!) in a few remaining spots.
See #37699.

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


git-svn-id: http://core.svn.wordpress.org/trunk@38399 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-08-31 05:04:29 +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 d9a28a3197 Multisite: Use `to_array()` method on `WP_Site` objects in `wp_get_sites()`
When an object with private properties is cast directly to an array, those properties are no longer available with their original keys.

Props @flixos90.
See #36717.

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


git-svn-id: http://core.svn.wordpress.org/trunk@37633 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-06-09 18:10:29 +00:00
Jeremy Felt 53400a885e Multisite: Deprecate `wp_get_sites()`
Defer to the new `get_sites()` replacement, offering fresh (...or cached) `WP_Site` objects via the new `WP_Site_Query`.

Props flixos90.
Fixes #36994.

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


git-svn-id: http://core.svn.wordpress.org/trunk@37619 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-06-08 03:03:27 +00:00
Drew Jaynes 38a6262e46 Docs: Add some missing `@param` notations to various DocBlocks in wp-includes/ms-deprecated.php.
See #32246.

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


git-svn-id: http://core.svn.wordpress.org/trunk@36692 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-26 09:16:26 +00:00
Drew Jaynes 5937e2b23e Docs: Add a missing `@param` entry for the `$user_login` parameter in the DocBlock for the deprecated `is_site_admin()` function.
See #32246.

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


git-svn-id: http://core.svn.wordpress.org/trunk@36691 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-26 08:56:26 +00:00
Drew Jaynes 0f27954363 Docs: Add a missing `@param` entry for the `$len` parameter in the DocBlock for the deprecated `generate_random_password()` function.
See #32246.

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


git-svn-id: http://core.svn.wordpress.org/trunk@36690 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-26 08:54:26 +00:00
John Blackbourn a5d44337b2 Docs: `@param` fixes for a variety of docblocks.
See #32246

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


git-svn-id: http://core.svn.wordpress.org/trunk@36199 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-01-09 01:45:26 +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
John Blackbourn ea28454867 Deprecate `get_admin_users_for_domain()`. This function has never been used in core.
Fixes #34122

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


git-svn-id: http://core.svn.wordpress.org/trunk@34720 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-10-01 22:27:24 +00:00
John Blackbourn d0d9e4c8d8 Deprecate `create_empty_blog()`. This function has never been used in core.
Fixes #34120

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


git-svn-id: http://core.svn.wordpress.org/trunk@34718 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-10-01 22:10:26 +00:00
Drew Jaynes eaab0e72a6 Docs: Standardize `@deprecated` tag formatting and add missing summaries to deprecated functions in wp-includes/ms-deprecated.php.
Props Alphawolf for the initial patch.
Props DrewAPicture

See #28806.

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


git-svn-id: http://core.svn.wordpress.org/trunk@33643 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-08-20 22:36:25 +00:00
Scott Taylor f888767c73 `$status` shouldn't be loosely compared to `true` in `wp_xmlrpc_server::wp_deleteComment()`.
`$initial` shouldn't be loosely compared to `true` in `get_calendar()`.
`current_user_can()` shouldn't be loosely compared to `false` in `kses_init()`
`$get_all` shouldn't be loosely compared to `true` in `get_blog_details()`.
`is_array()` and `in_array()` shouldn't be loosely compared in `wpmu_validate_user_signup()`.
`$result` should by strictly compared in `check_ajax_referer()`.
`wp_verify_nonce()` should by strictly compared in `_show_post_preview()`.
`is_user_logged_in()` should not be loosly compared against `false` in `wp-signup.php`.

See #32444.

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


git-svn-id: http://core.svn.wordpress.org/trunk@32704 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-06-12 17:48:26 +00:00
Scott Taylor cde4c83091 [31210] broke Supportflow on dotorg, which declares these methods as `protected`. Switch to `protected` for the noop methods. The subclasses can make them more visible using `public`.
See #30799.

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


git-svn-id: http://core.svn.wordpress.org/trunk@31192 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-01-16 18:37:24 +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
Jeremy Felt 00c86aea63 Delete admin_created_user_subject() rather than deprecate
As it was never used as anything more than a callback to a filter before the MU merge, and is only available in user-new.php in multisite, it is safe to remove this function entirely.

Fixes #29915

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


git-svn-id: http://core.svn.wordpress.org/trunk@30176 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-11-02 02:07:23 +00:00
Drew Jaynes f8657d5890 Remove redundant and erroneous `@uses` tag from most core inline documentation.
Per our inline documentation standards, no further use of the `@uses` tag is recommended as used and used-by relationships can be derived through other means. This removes most uses of the tag in core documentation, with remaining tags to be converted to `@global` or `@see` as they apply.

Fixes #30191.

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


git-svn-id: http://core.svn.wordpress.org/trunk@30105 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-10-30 01:05:24 +00:00
Jeremy Felt fd149bb220 Deprecate admin_created_user_subject()
When `admin_created_user_subjec()` was merged from MU, the accompanying filter was left behind. As it has never been used by WordPress core, and is not an otherwise useful function, it can be deprecated.

Fixes #29915

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


git-svn-id: http://core.svn.wordpress.org/trunk@30005 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-10-24 04:49:20 +00:00
Andrew Nacin 57baf9ad8e Theme compat: Move <head profile> to <link>.
props spmlucas.
fixes #24523.

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


git-svn-id: http://core.svn.wordpress.org/trunk@27555 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-03-25 17:22:15 +00:00
Andrew Nacin efdaf1e915 Introduce wp_get_sites(), a long-awaited replacement for get_blog_list().
props jeremyfelt.
see #14511.

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


git-svn-id: http://core.svn.wordpress.org/trunk@25366 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-09-14 21:13:10 +00:00
Sergey Biryukov 14308c0d41 Deprecate get_blogaddress_by_domain(), unused since [25261]. props jeremyfelt. fixes #25235.
Built from https://develop.svn.wordpress.org/trunk@25276


git-svn-id: http://core.svn.wordpress.org/trunk@25241 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-09-06 11:41:09 +00:00
Ryan Boren 0e923a5c9d Deprecate get_dashboard_blog().
Remove contextual help for Dashboard Site from the network settings screen.

Props sillybean, ocean90
fixes #24838


git-svn-id: http://core.svn.wordpress.org/trunk@24993 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-08-06 16:07:46 +00:00
Andrew Nacin 8252213fde Deprecate get_user_id_from_string() in favor of get_user_by( $field ) where $field is 'email' or 'login'. props SergeyBiryukov. fixes #23190.
git-svn-id: http://core.svn.wordpress.org/trunk@23438 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-02-16 03:02:15 +00:00
ryan 87dc511c0f Undeprecate *_blog_option() by popular demand. Put them back in ms-blogs.php since direct inclusion of ms-blogs.php/ms-functions.php is unforntunately common.
see #21432


git-svn-id: http://core.svn.wordpress.org/trunk@21480 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-08-08 17:11:15 +00:00
ryan 5ca54e7d2f Deprecate get_blog_option(), add_blog_option(), update_blog_option(), and delete_blog_option().
Use the regular option functions wrapped in switch_to_blog() and restore_current_blog() instead.

Group multiple operations within a single switch where possible.

fixes #21432


git-svn-id: http://core.svn.wordpress.org/trunk@21414 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-08-03 17:51:42 +00:00
ryan de41bc288b Introduce WP_User::exists(). see #20372
git-svn-id: http://svn.automattic.com/wordpress/trunk@20378 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-04-06 19:18:45 +00:00
ryan e3b46b25d3 Lose EOF ?>. Clean up EOF newlines. fixes #12307
git-svn-id: http://svn.automattic.com/wordpress/trunk@19712 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-01-08 17:01:11 +00:00
ryan 6febc018a9 Deprecate wpmu_admin_redirect_add_updated_param() and wpmu_admin_do_redirect(). Props SergeyBiryukov. fixes #18619
git-svn-id: http://svn.automattic.com/wordpress/trunk@18834 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2011-09-30 15:13:13 +00:00
azaozz 5256d7951f <!DOCTYPE html> for all, fixes #18202
git-svn-id: http://svn.automattic.com/wordpress/trunk@18460 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2011-07-22 00:25:41 +00:00
nacin e1eec3925a More @since. props SergeyBiryukov, fixes #15445.
git-svn-id: http://svn.automattic.com/wordpress/trunk@17071 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2010-12-20 09:25:21 +00:00
nacin 1017822b6f Deprecated doc cleanup.
git-svn-id: http://svn.automattic.com/wordpress/trunk@15344 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2010-06-28 10:11:41 +00:00
ryan 24be098207 Fix is_site_admin() when passing a username. Props francescolaffi. fixes #14046
git-svn-id: http://svn.automattic.com/wordpress/trunk@15328 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2010-06-25 15:11:36 +00:00
ryan d68747d9af Update get_current_user_id() and move to user.php. Props filosofo. fixes #13785
git-svn-id: http://svn.automattic.com/wordpress/trunk@15174 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2010-06-08 15:12:15 +00:00