WordPress/wp-includes
TimothyBlynJacobs 16784a5ea7 REST API: Optimize rest_filter_response_by_context performance.
In [47758] a new function `rest_filter_response_by_context` was introduced to expand the JSON schema features supported by the context filtering mechanism.

This commit improves the performance of that function by eliminating repetitive comparisons and loops. Additionally, it improves multi-type support for object + array types.

Fixes #50700.
Props dlh.

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


git-svn-id: http://core.svn.wordpress.org/trunk@48317 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2020-07-21 21:22:03 +00:00
..
assets Editor: update packages for Beta 3 2020-07-21 12:14:37 +00:00
block-patterns Block Editor: Remove the Testimonials block pattern. 2020-07-06 11:19:04 +00:00
blocks Editor: update packages for beta 2 2020-07-14 11:39:09 +00:00
certificates
css Editor: update packages for Beta 3 2020-07-21 12:14:37 +00:00
customize Coding Standards: Replace echo sprintf() with printf(). 2020-06-20 13:18:11 +00:00
fonts Administration: Reverse the arrow direction for database import/export icons. 2020-07-17 17:11:03 +00:00
ID3 External Libraries: Update getID3 to version 1.9.20. 2020-07-02 15:48:04 +00:00
images Customize: Move the WordPress logo with a white background to the wp-includes directory. 2020-05-21 09:10:12 +00:00
IXR XML-RPC: Explicitly unset the reference to the parser resource after calling xml_parser_free() to avoid memory leaks in PHP 7.0.0 or higher. 2020-07-05 15:22:01 +00:00
js Editor: update packages for Beta 3 2020-07-21 12:14:37 +00:00
PHPMailer General: Continuing to work towards a passing PHP Compatibility scan. 2020-06-15 14:56:07 +00:00
pomo Docs: Remove @staticvar tags from core. 2020-06-20 12:40:12 +00:00
random_compat
Requests General: Remove “whitelist” and “blacklist” in favor of more clear and inclusive language. 2020-06-22 17:26:13 +00:00
rest-api Media: Pass the attachment ID to the wp_image_file_matches_image_meta filter. 2020-07-21 16:55:08 +00:00
SimplePie External Libraries: Update the SimplePie library to the latest version (1.5.5). 2020-05-01 14:26:07 +00:00
sitemaps Sitemaps: Replace wp_sitemaps_register_providers filter with more suitable wp_sitemaps_add_provider filter. 2020-07-21 16:14:07 +00:00
sodium_compat General: Remove “whitelist” and “blacklist” in favor of more clear and inclusive language. 2020-06-22 17:26:13 +00:00
Text General: Continuing to work towards a passing PHP Compatibility scan. 2020-06-15 14:56:07 +00:00
theme-compat Bundled Themes: Use HTTPS for XHTML Friends Network URL. 2020-07-03 23:42:01 +00:00
widgets Widgets: Adjust formatting for displaying the closing </nav> tag in widgets for consistency with the opening tag. 2020-07-08 13:44:04 +00:00
admin-bar.php Customize: Do not allow changesets to be deleted when someone is editing them. 2020-06-29 10:33:08 +00:00
atomlib.php XML-RPC: Explicitly unset the reference to the parser resource after calling xml_parser_free() to avoid memory leaks in PHP 7.0.0 or higher. 2020-07-05 15:22:01 +00:00
author-template.php Docs: Capitalize "ID", when referring to a user ID, term ID, etc. in a more consistent way. 2020-06-28 14:09:04 +00:00
block-patterns.php Block Editor: Move the add_action() call for _register_core_block_patterns_and_categories() to wp-includes/default-filters.php. 2020-07-21 13:15:05 +00:00
blocks.php Editor: More strict checks for globals in render_block 2020-07-01 06:08:06 +00:00
bookmark-template.php Docs: Capitalize "ID", when referring to a post ID, term ID, etc. in a more consistent way. 2020-06-20 12:02:12 +00:00
bookmark.php Docs: Improve documentation for optional parameters per the documentation standards. 2020-06-28 11:49:02 +00:00
cache-compat.php Docs: Add missing documentation for the $group parameter of WP_Object_Cache::get_multiple(). 2020-06-10 09:57:09 +00:00
cache.php Docs: Add missing documentation for the $group parameter of WP_Object_Cache::get_multiple(). 2020-06-10 09:57:09 +00:00
canonical.php Docs: Standardize on "Returning a value from the filter" vs. "Passing a value to the filter". 2020-06-26 18:49:09 +00:00
capabilities.php Taxonomy: Add support for default terms for custom taxonomies. 2020-07-07 00:55:03 +00:00
category-template.php Docs: Improve documentation for optional parameters per the documentation standards. 2020-06-28 11:49:02 +00:00
category.php Docs: Correct documentation for the filter parameter of get_category() and get_tag(). 2020-06-30 00:04:05 +00:00
class-feed.php
class-http.php Docs: Miscellaneous docblock corrections and improvements. 2020-07-13 22:10:07 +00:00
class-IXR.php
class-json.php
class-oembed.php
class-phpass.php
class-phpmailer.php Mail: Make sure the PHPMailer class is only required once if a plugin requires wp-includes/class-phpmailer.php directly. 2020-07-21 12:58:02 +00:00
class-pop3.php General: More PHP compatibility adjustments. 2020-05-01 20:12:06 +00:00
class-requests.php General: Continuing to work towards a passing PHP Compatibility scan. 2020-06-03 17:40:12 +00:00
class-simplepie.php General: Continuing to work towards a passing PHP Compatibility scan. 2020-06-03 17:40:12 +00:00
class-smtp.php External Libraries: Add class aliases for phpmailerException and SMTP to deprecated files to account for the new namespace. 2020-06-12 21:42:09 +00:00
class-snoopy.php General: Fix various issues flagged by the PHPCompatibilityWP PHPCS ruleset. 2020-05-01 19:07:09 +00:00
class-walker-category-dropdown.php
class-walker-category.php Coding Standards: Use strict comparison where static strings are involved. 2020-05-16 18:42:12 +00:00
class-walker-comment.php Comments: Rename Walker_Comment::comment_text() to ::filter_comment_text() for clarity. 2020-06-02 21:45:10 +00:00
class-walker-nav-menu.php
class-walker-page-dropdown.php
class-walker-page.php Coding Standards: Use strict comparison where static strings are involved. 2020-05-16 18:42:12 +00:00
class-wp-admin-bar.php Administration: Remove any CSS related to Internet Explorer versions 6 – 10. 2020-05-06 20:15:07 +00:00
class-wp-ajax-response.php Docs: Replace "html" and "xhtml" instances in DocBlocks and comments with "HTML" and "XHTML". 2020-06-28 14:02:06 +00:00
class-wp-block-list.php Editor: Introduce WP_Block and WP_Block_List classes 2020-06-25 05:16:11 +00:00
class-wp-block-parser.php
class-wp-block-pattern-categories-registry.php Block Editor: Add the Block Patterns API. 2020-06-24 12:59:11 +00:00
class-wp-block-patterns-registry.php Docs: Miscellaneous DocBlock corrections. 2020-07-07 09:30:04 +00:00
class-wp-block-styles-registry.php Docs: Miscellaneous DocBlock corrections. 2020-06-28 11:53:04 +00:00
class-wp-block-type-registry.php Docs: Misc docblock corrections and improvements. 2020-05-03 19:38:08 +00:00
class-wp-block-type.php Docs: Spell "falsey" in a consistent way. 2020-07-02 11:30:02 +00:00
class-wp-block.php Editor: Introduce block context 2020-06-30 11:04:04 +00:00
class-wp-comment-query.php Docs: Spell "falsey" in a consistent way. 2020-07-02 11:30:02 +00:00
class-wp-comment.php Comments: Use comment instead of an empty string for the comment_type DB field value in comments table. 2020-04-17 19:35:06 +00:00
class-wp-customize-control.php Docs: Correct and improve inline docs for parameters that accept a callback function. 2020-07-14 11:56:04 +00:00
class-wp-customize-manager.php Customize: Do not allow changesets to be deleted when someone is editing them. 2020-06-29 10:33:08 +00:00
class-wp-customize-nav-menus.php Docs: Replace "html" and "xhtml" instances in DocBlocks and comments with "HTML" and "XHTML". 2020-06-28 14:02:06 +00:00
class-wp-customize-panel.php Coding Standards: Replace echo sprintf() with printf(). 2020-06-20 13:18:11 +00:00
class-wp-customize-section.php Docs: Add a reference to WP_Customize_Section::__construct() for information on accepted arguments in WP_Customize_Manager::add_section(). 2020-02-27 20:29:06 +00:00
class-wp-customize-setting.php Docs: Correct and improve inline docs for parameters that accept a callback function. 2020-07-14 11:56:04 +00:00
class-wp-customize-widgets.php Customize: Correct the check for rendered widgets in WP_Customize_Widgets::is_widget_rendered(). 2020-07-04 19:35:01 +00:00
class-wp-date-query.php Docs: Improve docs for arguments that accept a numerically indexed array of associative arrays. 2020-07-14 12:10:05 +00:00
class-wp-dependency.php Docs: Miscellaneous docblock corrections and improvements. 2020-07-13 22:10:07 +00:00
class-wp-editor.php Docs: Improve docs for arguments that accept a numerically indexed array of associative arrays. 2020-07-14 12:10:05 +00:00
class-wp-embed.php Embeds: Ensure that classic embed support works in the block editor. 2020-06-23 06:08:08 +00:00
class-wp-error.php
class-wp-fatal-error-handler.php Upgrade/Install: Rename wp_in_maintenance_mode() to wp_is_maintenance_mode(), for consistency with wp_is_recovery_mode(). 2020-05-31 19:54:24 +00:00
class-wp-feed-cache-transient.php
class-wp-feed-cache.php
class-wp-hook.php Coding Standards: Use Yoda conditions where appropriate. 2020-02-09 16:55:09 +00:00
class-wp-http-cookie.php Coding Standards: Use strict comparison where static strings are involved. 2020-05-16 18:42:12 +00:00
class-wp-http-curl.php Coding Standards: Use strict type check for in_array() and array_search(). 2020-04-09 15:43:10 +00:00
class-wp-http-encoding.php Docs: Improve documentation for optional parameters per the documentation standards. 2020-06-28 11:49:02 +00:00
class-wp-http-ixr-client.php Code Modernization: Introduce the spread operator in WP_HTTP_IXR_Client. 2020-06-30 19:50:04 +00:00
class-wp-http-proxy.php Docs: Miscellaneous docblock improvements. 2020-06-26 18:40:04 +00:00
class-wp-http-requests-hooks.php
class-wp-http-requests-response.php
class-wp-http-response.php
class-wp-http-streams.php Coding Standards: Use strict comparison where static strings are involved. 2020-05-16 18:42:12 +00:00
class-wp-image-editor-gd.php Docs: Remove extra spaces from @param tags. 2020-06-20 12:58:10 +00:00
class-wp-image-editor-imagick.php General: Remove “whitelist” and “blacklist” in favor of more clear and inclusive language. 2020-06-22 17:26:13 +00:00
class-wp-image-editor.php Docs: Remove extra spaces from @param tags. 2020-06-20 12:58:10 +00:00
class-wp-list-util.php Coding Standards: Use strict comparison in WP_List_Util::filter(). 2020-07-10 12:46:09 +00:00
class-wp-locale-switcher.php
class-wp-locale.php Coding Standards: Use strict comparison where static strings are involved. 2020-05-16 18:42:12 +00:00
class-wp-matchesmapregex.php Docs: Remove extra spaces from @param tags. 2020-06-20 12:58:10 +00:00
class-wp-meta-query.php Docs: Improve docs for arguments that accept a numerically indexed array of associative arrays. 2020-07-14 12:10:05 +00:00
class-wp-metadata-lazyloader.php
class-wp-network-query.php Docs: Capitalize "ID", when referring to a post ID, term ID, etc. in a more consistent way. 2020-06-20 12:02:12 +00:00
class-wp-network.php
class-wp-object-cache.php Docs: Capitalize "ID", when referring to a post ID, term ID, etc. in a more consistent way. 2020-06-20 12:02:12 +00:00
class-wp-oembed-controller.php REST API: Issue a _doing_it_wrong when registering a route without a permission callback. 2020-07-21 12:03:05 +00:00
class-wp-oembed.php Embeds: Correct the version number when Hulu was deprecated. 2020-07-20 13:14:04 +00:00
class-wp-paused-extensions-storage.php Docs: Remove an empty line between @param and @return tags, per the documentation standards. 2020-06-20 11:18:09 +00:00
class-wp-post-type.php Docs: Miscellaneous docblock corrections and improvements. 2020-07-13 22:10:07 +00:00
class-wp-post.php
class-wp-query.php Docs: Miscellaneous docblock corrections and improvements. 2020-07-13 22:10:07 +00:00
class-wp-recovery-mode-cookie-service.php
class-wp-recovery-mode-email-service.php Docs: Miscellaneous docblock corrections. 2020-07-18 22:11:02 +00:00
class-wp-recovery-mode-key-service.php Docs: Remove unnecessary variables names from @return tags. 2020-06-19 22:55:12 +00:00
class-wp-recovery-mode-link-service.php
class-wp-recovery-mode.php Docs: Remove an empty line between @param and @return tags, per the documentation standards. 2020-06-20 11:18:09 +00:00
class-wp-rewrite.php Docs: Improve documentation for optional parameters per the documentation standards. 2020-06-28 11:49:02 +00:00
class-wp-role.php
class-wp-roles.php Docs: Improve documentation for optional parameters per the documentation standards. 2020-06-28 11:49:02 +00:00
class-wp-session-tokens.php
class-wp-simplepie-file.php
class-wp-simplepie-sanitize-kses.php Coding Standards: Use Yoda conditions where appropriate. 2020-02-09 16:55:09 +00:00
class-wp-site-query.php Docs: Capitalize "ID", when referring to a post ID, term ID, etc. in a more consistent way. 2020-06-20 12:02:12 +00:00
class-wp-site.php
class-wp-tax-query.php Docs: Improve docs for arguments that accept a numerically indexed array of associative arrays. 2020-07-14 12:10:05 +00:00
class-wp-taxonomy.php Taxonomy: Add support for default terms for custom taxonomies. 2020-07-07 00:55:03 +00:00
class-wp-term-query.php Docs: Capitalize "ID", when referring to a post ID, term ID, etc. in a more consistent way. 2020-06-20 12:02:12 +00:00
class-wp-term.php
class-wp-text-diff-renderer-inline.php
class-wp-text-diff-renderer-table.php Coding Standards: Use strict type check for in_array() and array_search() where strings are involved. 2020-04-05 03:02:11 +00:00
class-wp-theme.php I18N: Restore the "Error:" prefix for error messages. 2020-06-21 14:00:09 +00:00
class-wp-user-meta-session-tokens.php
class-wp-user-query.php Docs: Capitalize "ID", when referring to a post ID, term ID, etc. in a more consistent way. 2020-06-20 12:02:12 +00:00
class-wp-user-request.php Docs: Add missing @since tags for WP_User_Request properties. 2020-03-23 20:20:09 +00:00
class-wp-user.php Coding Standards: Use strict comparison for count() calls. 2020-05-23 11:38:08 +00:00
class-wp-walker.php Coding Standards: Use Yoda conditions where appropriate. 2020-02-09 16:55:09 +00:00
class-wp-widget-factory.php
class-wp-widget.php Docs: Fix typo in WP_Widget::__construct() and ::WP_Widget() DocBlocks. 2020-06-09 15:37:10 +00:00
class-wp-xmlrpc-server.php Comments: Make wp_update_comment() return a WP_Error object for a canceled update, if $wp_error parameter is true. 2020-06-29 23:42:03 +00:00
class-wp.php General: Remove “whitelist” and “blacklist” in favor of more clear and inclusive language. 2020-06-22 17:26:13 +00:00
class.wp-dependencies.php Script Loader: Add the $group parameter to WP_Dependencies::do_item(). 2020-05-06 16:27:12 +00:00
class.wp-scripts.php Script Loader: Add id attributes to script assets. 2020-07-04 16:54:02 +00:00
class.wp-styles.php Script Loader: Add the $group parameter to WP_Dependencies::do_item(). 2020-05-06 16:27:12 +00:00
comment-template.php Docs: Correct and improve inline docs for parameters that accept a callback function. 2020-07-14 11:56:04 +00:00
comment.php Comments: Make wp_update_comment() return false instead of 0 for an invalid comment or post ID. 2020-06-30 14:12:04 +00:00
compat.php Docs: Remove @staticvar tags from core. 2020-06-20 12:40:12 +00:00
cron.php General: Continuing to work towards a passing PHP Compatibility scan. 2020-06-03 17:40:12 +00:00
date.php
default-constants.php Bootstrap/Load: Set WP_DEBUG to true by default on development environments. 2020-07-07 12:57:04 +00:00
default-filters.php Editor: Ensure the required assets for the block directory are enqueued. 2020-07-21 15:38:03 +00:00
default-widgets.php
deprecated.php Docs: Improve @return tags for various conditional tags. 2020-07-10 20:23:06 +00:00
embed-template.php
embed.php Docs: Remove @staticvar tags from core. 2020-06-20 12:40:12 +00:00
error-protection.php Docs: Remove an empty line between @param and @return tags, per the documentation standards. 2020-06-20 11:18:09 +00:00
feed-atom-comments.php Coding Standards: Use Yoda conditions where appropriate. 2020-02-09 16:55:09 +00:00
feed-atom.php
feed-rdf.php
feed-rss.php
feed-rss2-comments.php
feed-rss2.php
feed.php Coding Standards: Use strict type check for in_array() in wp-includes/feed.php. 2020-07-11 12:14:06 +00:00
formatting.php Docs: Improve documentation for sanitize_user(), sanitize_title(), sanitize_title_with_dashes(). 2020-07-12 01:13:02 +00:00
functions.php Site Health: Remove parse_ini_size(), use the existing wp_convert_hr_to_bytes() function instead. 2020-07-21 15:40:03 +00:00
functions.wp-scripts.php Script Loader: Include the script or style handle in _wp_scripts_maybe_doing_it_wrong() message. 2020-06-17 10:16:08 +00:00
functions.wp-styles.php Script Loader: Include the script or style handle in _wp_scripts_maybe_doing_it_wrong() message. 2020-06-17 10:16:08 +00:00
general-template.php Administration: Ensure SVG icons in admin menus are correctly colored. 2020-07-21 16:10:06 +00:00
http.php General: Remove “whitelist” and “blacklist” in favor of more clear and inclusive language. 2020-06-22 17:26:13 +00:00
kses.php Docs: Synchronize description for the $allowed_html parameter of various KSES functions. 2020-07-14 12:41:03 +00:00
l10n.php I18N: Use underscores instead of dashes and interpolation instead of concatenation in domain-specific gettext hooks, per the coding standards: 2020-06-23 10:02:10 +00:00
link-template.php Themes: Allow passing a custom class to post and comment pagination functions. 2020-07-07 14:16:03 +00:00
load.php Bootstrap/Load: Remove special handling for REQUEST_TIME and REQUEST_TIME_FLOAT server values in wp_magic_quotes(). 2020-06-28 21:09:05 +00:00
locale.php
media-template.php Administration: Move more table strings to sentence casing. 2020-07-06 21:52:21 +00:00
media.php Media: Pass the attachment ID to the wp_image_file_matches_image_meta filter. 2020-07-21 16:55:08 +00:00
meta.php Options, Meta APIs: Reorder the parameters of default_{$meta_type}_metadata filter. 2020-07-17 15:15:03 +00:00
ms-blogs.php Docs: Improve documentation for various option functions. 2020-07-05 14:46:03 +00:00
ms-default-constants.php Docs: Remove @staticvar tags from core. 2020-06-20 12:40:12 +00:00
ms-default-filters.php Multisite: Delete the signup entry when a user is deleted from the database. 2020-07-05 11:21:03 +00:00
ms-deprecated.php Administration: Remove the xmlns attribute on the <html> tag. 2020-06-22 21:26:16 +00:00
ms-files.php Coding Standards: Use Yoda conditions where appropriate. 2020-02-09 16:55:09 +00:00
ms-functions.php Docs: Improve description for add_user_to_blog(). 2020-07-20 11:54:05 +00:00
ms-load.php Networks and Sites: Update the link text for "Debugging a WordPress Network" support article in ms_not_installed(). 2020-06-05 09:13:08 +00:00
ms-network.php Docs: Capitalize "ID", when referring to a post ID, term ID, etc. in a more consistent way. 2020-06-20 12:02:12 +00:00
ms-settings.php Coding Standards: Use strict comparison where static strings are involved. 2020-05-16 18:42:12 +00:00
ms-site.php Docs: Improve documentation for the $prev_value parameter and return result of various metadata update functions. 2020-06-29 21:22:09 +00:00
nav-menu-template.php Docs: Miscellaneous DocBlock corrections. 2020-07-08 13:15:03 +00:00
nav-menu.php Menus: Simplify the test for wp_update_nav_menu_item() with special characters in category name. 2020-07-11 21:48:04 +00:00
option.php General: Rename the $new_whitelist_options global variable. 2020-07-14 12:33:02 +00:00
pluggable-deprecated.php
pluggable.php General: Remove “whitelist” and “blacklist” in favor of more clear and inclusive language. 2020-06-22 17:26:13 +00:00
plugin.php Plugins: Consistently use an empty string as the default value for $replacement and $message parameters in: 2020-07-05 21:09:03 +00:00
post-formats.php Docs: Improve documentation for optional parameters per the documentation standards. 2020-06-28 11:49:02 +00:00
post-template.php Docs: Improve documentation for optional parameters per the documentation standards. 2020-06-28 11:49:02 +00:00
post-thumbnail-template.php Post Thumbnails: Change the return value of get_post_thumbnail_id() for a non-existing post to false instead of an empty string. 2020-07-05 10:17:02 +00:00
post.php Posts, Post Types: Ensure that all post stati are countable in wp_count_posts. 2020-07-16 21:44:04 +00:00
query.php Docs: Improve @return tags for various conditional tags. 2020-07-10 20:23:06 +00:00
registration-functions.php
registration.php
rest-api.php REST API: Optimize rest_filter_response_by_context performance. 2020-07-21 21:22:03 +00:00
revision.php Revisions: Restore the return value of wp_get_post_autosave() to the documented type of WP_Post for backward compatibility. 2020-07-11 21:15:06 +00:00
rewrite.php Coding Standards: Use strict comparison where static strings are involved. 2020-05-16 18:42:12 +00:00
rss-functions.php
rss.php XML-RPC: Explicitly unset the reference to the parser resource after calling xml_parser_free() to avoid memory leaks in PHP 7.0.0 or higher. 2020-07-05 15:22:01 +00:00
script-loader.php Editor: Ensure the required assets for the block directory are enqueued. 2020-07-21 15:38:03 +00:00
session.php
shortcodes.php Coding Standards: Use strict comparison where static strings are involved. 2020-05-16 18:42:12 +00:00
sitemaps.php Sitemaps: Rename wp_register_sitemap() to wp_register_sitemap_provider(). 2020-07-21 20:15:02 +00:00
spl-autoload-compat.php
taxonomy.php Taxonomy: Make some adjustments to handling default terms for custom taxonomies: 2020-07-14 16:41:03 +00:00
template-loader.php Coding Standards: Fix instances of Generic.WhiteSpace.ArbitraryParenthesesSpacing.FoundEmpty. 2020-05-26 09:37:10 +00:00
template.php Themes: Allow template loading functions to pass additional arguments to the template via the $args parameter. 2020-07-07 11:01:59 +00:00
theme.php Docs: Add return value description for register_theme_directory(). 2020-07-15 12:10:06 +00:00
update.php Docs: Correct instances of “auto update” with “auto-update” for consistency. 2020-07-06 19:15:03 +00:00
user.php Docs: Improve documentation for the $prev_value parameter and return result of various metadata update functions. 2020-06-29 21:22:09 +00:00
vars.php
version.php REST API: Optimize rest_filter_response_by_context performance. 2020-07-21 21:22:03 +00:00
widgets.php Docs: Correct and improve inline docs for parameters that accept a callback function. 2020-07-14 11:56:04 +00:00
wlwmanifest.xml
wp-db.php Coding Standards: Use strict comparison in wp-includes/wp-db.php. 2020-07-18 11:39:04 +00:00
wp-diff.php