WordPress/wp-includes
Felix Arntz 0892a6ebbf Multisite: Improve initializing available roles when switch sites.
Switching the available roles and the current user's capabilities no longer happens in `switch_to_blog()` and `restore_current_blog()`, instead it has been moved to a new function `wp_switch_roles_and_user()` which is hooked into the site switching process. This allows to improve performance by temporarily unhooking the function when roles and capabilities do not need to be switched.

This change ensures that switching available roles now works closer to switching user capabilities, particularly the changes in [41624]. A new `WP_Roles::for_site( $site_id )` method has been introduced, and the `WP_Roles::_init()` method has been deprecated. It is furthermore possible to retrieve the site ID for which the available roles are currently initialized through a new `WP_Roles::get_site_id()`.

Props johnjamesjacoby, flixos90.
Fixes #38645.

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


git-svn-id: http://core.svn.wordpress.org/trunk@41460 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2017-09-27 21:44:44 +00:00
..
ID3 Media: update the `getID3` library to version `1.9.14` to avoid fatal errors in PHP7. 2017-07-31 19:50:45 +00:00
IXR
Requests
SimplePie
Text
certificates
css Accessibility: Update and standardize the admin `screen-reader-text` CSS class. 2017-09-27 17:27:45 +00:00
customize Accessibility: CodeMirror editing areas minor improvements. 2017-09-24 16:00:46 +00:00
fonts
images
js TinyMCE: update to 4.6.7, changelog: https://www.tinymce.com/docs/changelog/#version467september182017. 2017-09-26 21:15:47 +00:00
pomo
random_compat
rest-api I18N: Add translator comments for placeholders in `WP_REST_Controller` strings. 2017-09-25 10:27:43 +00:00
theme-compat Embeds: Introduce `embed_thumbnail_id` filter for thumbnail image ID in the embed template. 2017-09-22 17:35:48 +00:00
widgets Widgets: Introduce Gallery widget for displaying image galleries. 2017-09-25 06:28:45 +00:00
admin-bar.php Toolbar: Add `View User` and `Edit User` links to the admin toolbar to ease navigation between a user's archives and the user editing screen. 2017-07-26 16:45:44 +00:00
atomlib.php
author-template.php Editor: Add CodeMirror-powered code editor with syntax highlighting, linting, and auto-completion. 2017-09-13 06:08:47 +00:00
bookmark-template.php
bookmark.php
cache.php Docs: Remove `@access` notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
canonical.php Canonical: Check first before attempting to include a 'path' value in the URL in `strip_fragment_from_url()`. 2017-08-16 21:11:43 +00:00
capabilities.php Docs: Clarify descriptions and parameter types for various user capability checking functions. 2017-08-29 16:43:47 +00:00
category-template.php General: Fix more instances of inconsistent parameters passed to various filters, plus fix some filter docs. 2017-08-03 16:13:44 +00:00
category.php
class-IXR.php
class-feed.php
class-http.php Docs: Change `$args` to `$r` in the DocBlock for `http_api_debug` filter to match the variable name. 2017-09-22 09:33:47 +00:00
class-json.php
class-oembed.php Embeds: Documentation alignment following [41615]. 2017-09-27 13:27:44 +00:00
class-phpass.php
class-phpmailer.php
class-pop3.php
class-requests.php
class-simplepie.php
class-smtp.php
class-snoopy.php
class-walker-category-dropdown.php Docs: Remove `@access` notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-walker-category.php Docs: Remove `@access` notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-walker-comment.php Docs: Remove `@access` notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-walker-nav-menu.php Docs: Remove `@access` notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-walker-page-dropdown.php Docs: Remove `@access` notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-walker-page.php Docs: Remove `@access` notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-wp-admin-bar.php Docs: Remove `@access` notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-wp-ajax-response.php Docs: Remove `@access` notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-wp-comment-query.php Introduce `paged` argument to `WP_Comment_Query`. 2017-08-21 15:35:46 +00:00
class-wp-comment.php Docs: Remove `@access` notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-wp-customize-control.php Docs: Remove `@access` notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-wp-customize-manager.php Customize: Dismiss all autosaved auto-drafts for user and not just the one suggested when dismissing restoration notification. 2017-09-26 20:33:46 +00:00
class-wp-customize-nav-menus.php Docs: Remove "in in", "this this", and "containing containing" dittography from inline comments. 2017-09-09 13:19:45 +00:00
class-wp-customize-panel.php Accessibility: CodeMirror editing areas minor improvements. 2017-09-24 16:00:46 +00:00
class-wp-customize-section.php Customize: Add notifications API to sections and panels. 2017-09-19 05:40:44 +00:00
class-wp-customize-setting.php Docs: Remove `@access` notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-wp-customize-widgets.php Customize: Introduce `settings_previewed` arg and getter on `WP_Customize_Manager` which controls whether `WP_Customize_Setting::preview()` should be called on settings. 2017-08-02 05:35:41 +00:00
class-wp-dependency.php Docs: Remove `@access` notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-wp-editor.php Editor: In `_WP_Editors::wp_link_query`, allow filtering empty results. 2017-09-08 14:03:44 +00:00
class-wp-embed.php Docs: Remove `@access` notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-wp-error.php Docs: Remove `@access` notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-wp-feed-cache-transient.php Docs: Remove `@access` notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-wp-feed-cache.php Docs: Remove `@access` notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-wp-hook.php Docs: Use correct order of arguments in the DocBlock for `WP_Hook::has_filter()`. 2017-09-21 10:00:48 +00:00
class-wp-http-cookie.php Docs: Remove `@access` notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-wp-http-curl.php Docs: Remove `@access` notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-wp-http-encoding.php
class-wp-http-ixr-client.php
class-wp-http-proxy.php
class-wp-http-requests-hooks.php Docs: Remove superfluous `@package WordPress` and `@subpackage` notations used outside of file headers in a variety of core files. 2017-07-01 16:58:42 +00:00
class-wp-http-requests-response.php Docs: Remove `@access` notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-wp-http-response.php Docs: Remove `@access` notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-wp-http-streams.php Docs: Remove `@access` notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-wp-image-editor-gd.php Media: Rename several attachment related parameters from `$post_id` to `$attachment_id` for clarity, and improve related 2017-08-22 11:12:44 +00:00
class-wp-image-editor-imagick.php Media: Rename several attachment related parameters from `$post_id` to `$attachment_id` for clarity, and improve related 2017-08-22 11:12:44 +00:00
class-wp-image-editor.php Media: Rename several attachment related parameters from `$post_id` to `$attachment_id` for clarity, and improve related 2017-08-22 11:12:44 +00:00
class-wp-list-util.php Docs: Remove `@access` notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-wp-locale-switcher.php General: Improve terminology used when referring to installations of WordPress and its extensions. 2017-08-22 11:52:48 +00:00
class-wp-locale.php Docs: Remove `@access` notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-wp-matchesmapregex.php Docs: Remove `@access` notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-wp-meta-query.php Docs: Remove `@access` notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-wp-metadata-lazyloader.php Docs: Remove `@access` notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-wp-network-query.php Docs: Fix various filter documentation. 2017-08-03 14:34:44 +00:00
class-wp-network.php Multisite: Introduce `get_main_site_id()`. 2017-09-15 11:15:52 +00:00
class-wp-oembed-controller.php Docs: Remove `@access` notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-wp-post-type.php Docs: Remove `@access` notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-wp-post.php Docs: Remove `@access` notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-wp-query.php Docs: Remove `@access` notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-wp-rewrite.php Docs: Remove `@access` notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-wp-role.php Docs: Remove `@access` notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-wp-roles.php Multisite: Improve initializing available roles when switch sites. 2017-09-27 21:44:44 +00:00
class-wp-session-tokens.php Docs: Remove `@access` notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-wp-simplepie-file.php Docs: Remove `@access` notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-wp-simplepie-sanitize-kses.php Docs: Remove `@access` notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-wp-site-query.php Multisite: More specificity for the `get_sites()` documentation. 2017-09-04 11:17:43 +00:00
class-wp-site.php Docs: Remove `@access` notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-wp-tax-query.php Docs: Remove `@access` notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-wp-taxonomy.php Docs: Remove `@access` notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-wp-term-query.php Taxonomy: Force a `DISTINCT` term query when result count matters. 2017-09-13 14:48:45 +00:00
class-wp-term.php Docs: Remove `@access` notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-wp-text-diff-renderer-inline.php
class-wp-text-diff-renderer-table.php Docs: Remove `@access` notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-wp-theme.php Themes: Adjust translated string after [41601]. 2017-09-27 08:38:45 +00:00
class-wp-user-meta-session-tokens.php Docs: Remove `@access` notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-wp-user-query.php Docs: Remove `@access` notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-wp-user.php Multisite: Initialize a user's roles correctly when setting them up for a different site. 2017-09-27 21:10:45 +00:00
class-wp-walker.php Docs: Remove `@access` notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-wp-widget-factory.php Docs: Remove `@access` notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-wp-widget.php Docs: Remove `@access` notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-wp-xmlrpc-server.php I18N: Merge two similar "Cannot set parent term" error strings. 2017-09-22 22:08:46 +00:00
class-wp.php Docs: Remove `@access` notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class.wp-dependencies.php Docs: Remove `@access` notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class.wp-scripts.php Docs: Remove `@access` notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class.wp-styles.php Docs: Remove `@access` notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
comment-template.php Docs: Clarify that `get_comments_number()` can return either a numeric string (for compatibility reasons) or 0 if the post doesn't exist. 2017-08-20 20:13:47 +00:00
comment.php Allow metadata to be updated via `wp_update_comment()`. 2017-07-01 13:36:41 +00:00
compat.php General: Move the `__autoload()` compat function into its own file to prevent deprecated notices being thrown by the compiler in PHP 7.2. 2017-07-28 01:15:52 +00:00
cron.php Docs: Use third-person singular verbs in the summaries for `wp_unschedule_hook()` and `wp_clear_scheduled_hook()`. 2017-06-30 04:54:41 +00:00
date.php Docs: Remove `@access` notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
default-constants.php General: Improve terminology used when referring to installations of WordPress and its extensions. 2017-08-22 11:52:48 +00:00
default-filters.php Users: Introduce the concept of a large site in order to speed up the Users screen when there are many users. 2017-09-27 13:04:47 +00:00
default-widgets.php Widgets: Introduce Gallery widget for displaying image galleries. 2017-09-25 06:28:45 +00:00
deprecated.php Retire Press This and extract it to a plugin. First run. 2017-09-24 14:22:54 +00:00
embed-template.php
embed.php Accessibility: Update and standardize the admin `screen-reader-text` CSS class. 2017-09-27 17:27:45 +00:00
feed-atom-comments.php
feed-atom.php
feed-rdf.php
feed-rss.php
feed-rss2-comments.php
feed-rss2.php
feed.php
formatting.php Emoji: Invert value returned by UN test for accuracy. 2017-09-17 22:52:47 +00:00
functions.php Users: There is not, in fact, 12345 users on every WordPress installation. 2017-09-27 13:07:46 +00:00
functions.wp-scripts.php
functions.wp-styles.php
general-template.php Customize: Introduce extensible code editor Customizer control for CodeMirror. 2017-09-21 23:04:45 +00:00
http.php Docs: Add `@access private` entries for `_get_component_from_parsed_url_array()` and `_wp_translate_php_url_constant_to_key()`. 2017-09-22 22:00:47 +00:00
kses.php Docs: Adjust notation for the `$context` parameter in the DocBlocks for the `wp_kses_allowed_html()` function and its associated `wp_kses_allowed_html` filter. 2017-06-25 22:16:40 +00:00
l10n.php General: Improve terminology used when referring to installations of WordPress and its extensions. 2017-08-22 11:52:48 +00:00
link-template.php Posts, Post Types: Pass the `order` parameter to `get_{$adjacent}_post_sort` filter. 2017-09-24 23:01:44 +00:00
load.php Docs: Add a `@global` entry for `$wp_filter` in `wp_start_object_cache()`. 2017-07-01 22:13:41 +00:00
locale.php
media-template.php Media: Set correct value for "Link Rel" field in Image Details modal. 2017-08-31 11:17:45 +00:00
media.php Media: Rename "Insert Media" window title to "Add Media" for consistency with the "Add Media" button. 2017-09-16 11:03:45 +00:00
meta.php Options/Meta: Document valid types for registration. 2017-05-10 06:10:43 +00:00
ms-blogs.php Multisite: Improve initializing available roles when switch sites. 2017-09-27 21:44:44 +00:00
ms-default-constants.php
ms-default-filters.php Multisite: Improve initializing available roles when switch sites. 2017-09-27 21:44:44 +00:00
ms-deprecated.php General: Improve terminology used when referring to installations of WordPress and its extensions. 2017-08-22 11:52:48 +00:00
ms-files.php
ms-functions.php Options, Meta APIs: Require a confirmation link in an email to be clicked when a user attempts to change the network 2017-09-27 14:17:45 +00:00
ms-load.php Multisite: Introduce `get_main_site_id()`. 2017-09-15 11:15:52 +00:00
ms-settings.php
nav-menu-template.php Menus: Make sure `current-menu-parent` and `current-menu-ancestor` classes are properly set for parent items of post type archive submenu items. 2017-07-05 21:31:44 +00:00
nav-menu.php Map nav menu locations on theme switch 2017-08-09 21:04:47 +00:00
option.php Multisite: Remove references to `$wpdb->siteid` and use `get_current_network_id()` instead. 2017-08-12 13:11:43 +00:00
pluggable-deprecated.php
pluggable.php Login and Registration: Pass the user session token to the `set_auth_cookie` and `set_logged_in_cookie` filters. 2017-09-10 21:09:45 +00:00
plugin.php Add `wp.hooks` - JavaScript actions and filters. 2017-09-12 12:54:45 +00:00
post-formats.php Docs: Improve the return description for `get_post_format_slugs()` to note that the array contains slugs as both keys and values. 2017-08-20 20:03:54 +00:00
post-template.php I18N: Allow for post custom field name in `the_meta()` to be translated, e.g. to insert a non-breaking space before the colon. 2017-09-24 11:28:46 +00:00
post-thumbnail-template.php Post Thumbnails: Pass post ID to `post_thumbnail_size` filter. 2017-08-18 18:19:44 +00:00
post.php Docs: Remove "since since" and "one one" dittography from inline comments. 2017-09-09 13:53:42 +00:00
query.php Docs: Remove some more top-level `@aacess` tags from function DocBlocks. 2017-07-27 08:19:43 +00:00
registration-functions.php
registration.php
rest-api.php REST API: Always call `rest_get_server()` instead of accessing the `$wp_rest_server` global. 2017-08-10 01:38:43 +00:00
revision.php
rewrite.php
rss-functions.php
rss.php
script-loader.php Plugins: Improve error messages on plugins screen. 2017-09-27 08:46:45 +00:00
session.php
shortcodes.php Docs: Fix a typo in the DocBlock description for `add_shortcode()` introduced in [41281]. 2017-08-20 20:38:42 +00:00
spl-autoload-compat.php General: Move the `__autoload()` compat function into its own file to prevent deprecated notices being thrown by the compiler in PHP 7.2. 2017-07-28 01:15:52 +00:00
taxonomy.php Taxonomy: Introduce a `back_to_items` taxonomy label. 2017-09-27 14:39:45 +00:00
template-loader.php
template.php Docs: Don't reference non-existent hooks inline in the DocBlock descriptions for the following template functions: 2017-06-29 16:05:41 +00:00
theme.php Customize: Extend changesets to support autosave revisions with restoration notifications, and introduce a new default linear history mode for saved changesets (with a filter for opt-in to changeset branching). 2017-09-26 07:38:45 +00:00
update.php Users: Introduce the concept of a large site in order to speed up the Users screen when there are many users. 2017-09-27 13:04:47 +00:00
user.php Docs: Correct description for `insert_user_meta` filter. 2017-09-22 13:14:45 +00:00
vars.php General: Introduce a `wp_is_mobile` filter for controlling whether a request should be treated as coming from a mobile device. 2017-06-15 12:05:42 +00:00
version.php Multisite: Improve initializing available roles when switch sites. 2017-09-27 21:44:44 +00:00
widgets.php Widgets: Merge orphaned widgets on theme switch 2017-09-25 16:19:46 +00:00
wlwmanifest.xml
wp-db.php Database: Hardening to bring `wpdb::prepare()` inline with documentation. 2017-09-19 17:56:45 +00:00
wp-diff.php