WordPress/wp-includes
spacedmonkey 8771a658ad Taxonomy: Only store term_ids and object_ids in WP_Term_Query query caches.
The query cache currently implemented in `WP_Term_Query` caches the final output of the query, depending on what fields are requested. This is wasteful, as if a user requests `fields` => `all`, then an unlimited array of `WP_Term` objects could be stored in the object cache. Instead of storing the whole WP_Term object, this change only the term_id is stored. To get an array the full WP_Term objects, the `_prime_term_caches` function is called with an array of ids. In instances where a persistent object cache is not in use, then this will result in another SQL query to be run. After `_prime_term_caches` is called if this term is requested again in the same page load, then it will already be loaded into memory.  If a user runs `WP_Term_Query` with the fields param set to `all_with_object_id`, an array of objects containing both the term_id and object_ids are stored in cache. 

This change also improves the logic to load term meta caches. This change ensures that term meta is always primed for all terms loaded in the term query. 

Props Spacedmonkey, boonebgorges, jbpaul17, peterwilsoncc, flixos90, pbearne.
Fixes #37189.

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


git-svn-id: http://core.svn.wordpress.org/trunk@52425 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2022-03-10 10:58:09 +00:00
..
assets Editor: Update block editor packages for WordPress 5.9.1. 2022-02-17 19:18:25 +00:00
block-patterns Add Site Editor and PHP changes from Gutenberg 10.1 - 11.9 2021-11-09 02:17:17 +00:00
block-supports Editor: Automatically apply global styles duotone filters to render in post editor. 2022-02-17 20:45:00 +00:00
blocks Editor: Update block editor packages for WordPress 5.9.1. 2022-02-17 19:18:25 +00:00
certificates HTTP: Remove the DST Root CA X3 certificate expired on September 30, 2021. 2021-10-03 17:51:06 +00:00
css Editor: Update block editor packages for WordPress 5.9.1. 2022-02-17 19:18:25 +00:00
customize Customizer: Remove Menus panel when a theme does not support menus 2022-01-24 05:34:04 +00:00
fonts
ID3 External Libraries: Update getID3 to version 1.9.21. 2021-11-26 03:06:03 +00:00
images Coding Standards: Revert accidental image changes in [52171]. 2021-11-16 00:04:01 +00:00
IXR
js Administration: Consistency fixes on keyboard shortcuts instructions. 2022-02-27 22:49:01 +00:00
php-compat Docs: Improve documentation for a few functions per the documentation standards. 2021-08-10 13:45:57 +00:00
PHPMailer External Libraries: Upgrade PHPMailer to version 6.6.0. 2022-02-28 21:38:09 +00:00
pomo Code Modernization: Use stream_get_contents() in POMO_FileReader::read_all(). 2022-02-09 12:33:05 +00:00
random_compat External Libraries: Update random_compat to version 2.0.21. 2022-02-16 21:19:04 +00:00
Requests HTTP API: Revert changeset [52244]. 2021-12-06 21:30:03 +00:00
rest-api REST API: Correct the wording for show_in_nav_menus property description in post type visibility settings. 2022-03-08 14:51:07 +00:00
SimplePie External Libraries: Update the SimplePie library to version 1.5.7. 2021-12-20 19:33:00 +00:00
sitemaps Sitemaps: Pass term object to wp_sitemaps_taxonomies_entry filter. 2022-03-10 04:01:05 +00:00
sodium_compat Upgrade/Install: Update sodium_compat to v1.17.0. 2021-08-10 13:04:57 +00:00
Text
theme-compat Docs: Various corrections and improvements relating to types used in inline documentation. 2021-11-18 13:50:05 +00:00
widgets Docs: Replace "Current theme" with "Active theme" in various DocBlocks. 2022-01-20 23:53:05 +00:00
admin-bar.php Toolbar: Show the Customize link on front end when using a block theme if any plugins use the Customizer. 2021-12-25 03:17:04 +00:00
atomlib.php
author-template.php Coding Standards: Remove an extra variable in get_author_posts_url(). 2022-01-12 11:17:08 +00:00
block-editor.php Global Styles: Load the global styles before the theme styles in the editor. 2022-02-17 14:14:01 +00:00
block-i18n.json Blocks: Add support for variations in block.json` file 2021-08-11 09:08:01 +00:00
block-patterns.php Docs: Fix typos in some DocBlocks. 2022-01-18 20:29:06 +00:00
block-template-utils.php Docs: Docblock corrections for get_block_file_template(). 2022-01-24 15:28:02 +00:00
block-template.php Query: Check if the theme supports block-templates before calling locate_block_template() in get_query_template(). 2022-02-09 13:22:03 +00:00
blocks.php Docs: Correct return type for get_block_metadata_i18n_schema(). 2022-02-24 08:27:09 +00:00
bookmark-template.php General: Add "noopener" to wp_list_bookmarks() output. 2021-11-08 23:06:58 +00:00
bookmark.php
cache-compat.php Cache API: Add wp_cache_flush_runtime function 2022-02-18 12:06:03 +00:00
cache.php Cache API: Add wp_cache_flush_runtime function 2022-02-18 12:06:03 +00:00
canonical.php Canonical: Check if the URL scheme exists in strip_fragment_from_url(). 2022-03-09 15:08:06 +00:00
capabilities.php Users: Prevent infinite loop when using capability checks during determine_current_user on multisite. 2021-11-15 01:09:59 +00:00
category-template.php Docs: Various corrections and improvements relating to types used in inline documentation. 2021-11-18 13:50:05 +00:00
category.php
class-feed.php
class-http.php Coding Standards: Move wp-includes/class-http.php to wp-includes/class-wp-http.php. 2021-11-07 01:36:57 +00:00
class-IXR.php
class-json.php
class-oembed.php
class-phpass.php
class-phpmailer.php
class-pop3.php
class-requests.php HTTP API: Revert changeset [52244]. 2021-12-06 21:30:03 +00:00
class-simplepie.php External Libraries: Update the SimplePie library to version 1.5.8. 2021-12-24 18:06:06 +00:00
class-smtp.php
class-snoopy.php
class-walker-category-dropdown.php Docs: Increase the specificity of types in various inline documentation. 2022-01-30 19:25:03 +00:00
class-walker-category.php Docs: Increase the specificity of types in various inline documentation. 2022-01-30 19:25:03 +00:00
class-walker-comment.php Docs: Increase the specificity of types in various inline documentation. 2022-01-30 19:25:03 +00:00
class-walker-nav-menu.php Docs: Increase the specificity of types in various inline documentation. 2022-01-30 19:25:03 +00:00
class-walker-page-dropdown.php Docs: Increase the specificity of types in various inline documentation. 2022-01-30 19:25:03 +00:00
class-walker-page.php Docs: Increase the specificity of types in various inline documentation. 2022-01-30 19:25:03 +00:00
class-wp-admin-bar.php Editor: Fix how the Site Editor is linked to 2021-11-15 03:43:59 +00:00
class-wp-ajax-response.php
class-wp-application-passwords.php Application Passwords: Various docblock improvements. 2021-10-30 20:26:59 +00:00
class-wp-block-editor-context.php
class-wp-block-list.php Code Modernization: Silence the deprecation warnings for missing return type in WP_Block_List. 2021-08-03 11:12:55 +00:00
class-wp-block-parser.php
class-wp-block-pattern-categories-registry.php Docs: Improve the documentation for registering block patterns and block pattern categories. 2021-11-19 19:05:59 +00:00
class-wp-block-patterns-registry.php Docs: Various docblock corrections and improvements. 2021-11-23 21:37:01 +00:00
class-wp-block-styles-registry.php Editor: Ensure block style name does not contain spaces before creating the class. 2021-11-28 13:53:00 +00:00
class-wp-block-supports.php Docs: Various docblock corrections and improvements. 2021-11-23 21:37:01 +00:00
class-wp-block-template.php Editor: Explicitly declare $post_types and $area properties in WP_Block_Template class. 2021-12-21 00:28:00 +00:00
class-wp-block-type-registry.php Coding Standards: Remove a one-time $message variable in some _doing_it_wrong() calls. 2021-06-15 15:22:58 +00:00
class-wp-block-type.php Docs: Increase the specificity of types in various inline documentation. 2022-01-30 19:25:03 +00:00
class-wp-block.php Docs: Various docblock corrections. 2021-12-01 12:17:00 +00:00
class-wp-comment-query.php Cache: Use wp_cache_*_multiple() in core functions. 2022-02-11 18:51:59 +00:00
class-wp-comment.php
class-wp-customize-control.php Coding Standards: Escape id attributes in WP_Customize_Control::render_content() and ::print_template(). 2021-10-22 16:09:59 +00:00
class-wp-customize-manager.php Docs: Replace "Current theme" with "Active theme" in various DocBlocks. 2022-01-20 23:53:05 +00:00
class-wp-customize-nav-menus.php Docs: Miscellaneous inline documentation improvements, including: 2021-10-04 20:44:02 +00:00
class-wp-customize-panel.php Customizer: Remove Menus panel when a theme does not support menus 2022-01-24 05:34:04 +00:00
class-wp-customize-section.php Docs: Update some @var tags per the documentation standards. 2021-12-11 19:50:59 +00:00
class-wp-customize-setting.php Coding Standards: Add public visibility to methods in src directory. 2021-10-18 17:52:58 +00:00
class-wp-customize-widgets.php Customizer: Remove Widgets panel when a theme does not support widgets 2022-01-24 05:37:01 +00:00
class-wp-date-query.php Docs: Increase the specificity of types in various inline documentation. 2022-01-30 19:25:03 +00:00
class-wp-dependency.php
class-wp-editor.php Editor: Revert [51748] and [51649]. They intorduced a bug where wp.editor may be replaced with wp.oldEditor in certain cases. 2021-09-08 23:29:58 +00:00
class-wp-embed.php External Libraries: Further fix jQuery deprecations in WordPress core. 2021-11-30 17:18:01 +00:00
class-wp-error.php
class-wp-fatal-error-handler.php Booststrap/Load: Only reference recovery mode email when it can be sent. 2021-06-05 15:46:57 +00:00
class-wp-feed-cache-transient.php
class-wp-feed-cache.php
class-wp-hook.php Plugins: Correct the documented allowable types for to the $callback parameter of various hook related functions. 2021-12-01 13:22:01 +00:00
class-wp-http-cookie.php Docs: Miscellaneous docblock corrections and improvements. 2021-09-22 21:23:00 +00:00
class-wp-http-curl.php Coding Standards: Move wp-includes/class-http.php to wp-includes/class-wp-http.php. 2021-11-07 01:36:57 +00:00
class-wp-http-encoding.php Docs: Fix typos in some DocBlocks. 2022-01-18 20:29:06 +00:00
class-wp-http-ixr-client.php Coding Standards: Use strict comparison in wp-includes/class-wp-http-ixr-client.php. 2021-10-01 15:00:58 +00:00
class-wp-http-proxy.php Docs: Various docblock corrections. 2021-12-01 12:17:00 +00:00
class-wp-http-requests-hooks.php HTTP API: Revert changeset [52244]. 2021-12-06 21:30:03 +00:00
class-wp-http-requests-response.php HTTP API: Revert changeset [52244]. 2021-12-06 21:30:03 +00:00
class-wp-http-response.php
class-wp-http-streams.php Docs: Typo corrections in various API docblocks. 2022-02-04 16:28:00 +00:00
class-wp-http.php Docs: Fix typos in some DocBlocks. 2022-01-18 20:29:06 +00:00
class-wp-image-editor-gd.php Build/Test Tools: Update PHPCompatibilityWP to version 2.1.3. 2021-12-31 13:55:03 +00:00
class-wp-image-editor-imagick.php Docs: Update spelling for inline comments in a few files. 2022-01-25 13:55:05 +00:00
class-wp-image-editor.php Media: Typo correction in wp_image_maybe_exif_rotate docblock. 2022-01-13 19:14:05 +00:00
class-wp-list-util.php Docs: Increase the specificity of types in various inline documentation. 2022-01-30 19:25:03 +00:00
class-wp-locale-switcher.php
class-wp-locale.php Docs: Increase the specificity of types in various inline documentation. 2022-01-30 19:25:03 +00:00
class-wp-matchesmapregex.php
class-wp-meta-query.php Query: Improve sanitization within WP_Meta_Query. 2022-01-06 17:05:02 +00:00
class-wp-metadata-lazyloader.php
class-wp-network-query.php Docs: Replace $this in hook param docs with more appropriate names. 2021-07-30 19:35:58 +00:00
class-wp-network.php
class-wp-object-cache.php Docs: Improve @return tags for wp_cache_*_multiple() functions: 2022-02-11 19:21:01 +00:00
class-wp-oembed-controller.php Docs: Document the usage of $wp_embed global in WP_oEmbed_Controller::get_proxy_item(). 2021-06-15 10:24:57 +00:00
class-wp-oembed.php Embeds: Add Wolfram Notebook as a trusted oEmbed provider. 2021-10-15 05:04:56 +00:00
class-wp-paused-extensions-storage.php
class-wp-post-type.php Docs: Increase the specificity of types in various inline documentation. 2022-01-30 19:25:03 +00:00
class-wp-post.php
class-wp-query.php Query: Make sure WP_Query::get_queried_object() works for author_name before ::get_posts() is run. 2022-03-05 15:35:04 +00:00
class-wp-recovery-mode-cookie-service.php
class-wp-recovery-mode-email-service.php Administration: Replace "Current theme" with "Active theme" in user facing strings. 2022-01-15 08:44:03 +00:00
class-wp-recovery-mode-key-service.php
class-wp-recovery-mode-link-service.php
class-wp-recovery-mode.php
class-wp-rewrite.php Docs: Increase the specificity of types in various inline documentation. 2022-01-30 19:25:03 +00:00
class-wp-role.php
class-wp-roles.php Docs: Replace $this in hook param docs with more appropriate names. 2021-07-30 19:35:58 +00:00
class-wp-session-tokens.php
class-wp-simplepie-file.php
class-wp-simplepie-sanitize-kses.php Docs: Typo corrections in various API docblocks. 2022-02-04 16:28:00 +00:00
class-wp-site-query.php Query: Correct and standardise the meta query documentation. 2021-11-20 00:07:59 +00:00
class-wp-site.php
class-wp-tax-query.php Query: Improve sanitization within WP_Meta_Query. 2022-01-06 17:05:02 +00:00
class-wp-taxonomy.php Docs: Increase the specificity of types in various inline documentation. 2022-01-30 19:25:03 +00:00
class-wp-term-query.php Taxonomy: Only store term_ids and object_ids in WP_Term_Query query caches. 2022-03-10 10:58:09 +00:00
class-wp-term.php
class-wp-text-diff-renderer-inline.php
class-wp-text-diff-renderer-table.php Docs: Typo corrections in various API docblocks. 2022-02-04 16:28:00 +00:00
class-wp-theme-json-resolver.php Themes: Allow extending WP_Theme_JSON and WP_Theme_JSON_Resolver classes. 2022-02-17 09:04:05 +00:00
class-wp-theme-json-schema.php Docs: Docblock typo correction in WP_Theme_JSON_Schema. 2021-12-02 20:45:01 +00:00
class-wp-theme-json.php Themes: Avoid undefined variable warning on get_svg_filters(). 2022-02-23 23:17:01 +00:00
class-wp-theme.php Docs: Increase the specificity of types in various inline documentation. 2022-01-30 19:25:03 +00:00
class-wp-user-meta-session-tokens.php
class-wp-user-query.php Role/Capability: Correct the documented accepted types for the capability argument of WP_User_Query. 2022-01-30 19:34:00 +00:00
class-wp-user-request.php
class-wp-user.php Docs: Use third-person singular verbs for function descriptions in wp-includes/class-wp-user.php. 2022-03-07 13:07:03 +00:00
class-wp-walker.php Docs: Add missing descriptions for some parameters of WP_Walker::paged_walk(). 2022-02-24 13:33:01 +00:00
class-wp-widget-factory.php Widgets: Fix widget preview not working if widget registered via a instance 2021-06-23 01:34:58 +00:00
class-wp-widget.php Widgets: Use isset() in WP_Widget:: display_callback() to support ArrayIterator and ArrayObject. 2021-11-16 01:43:00 +00:00
class-wp-xmlrpc-server.php XML-RPC: Fix typos in some XMLRPC related docblocks. 2022-01-14 14:45:05 +00:00
class-wp.php Docs: Add a @since note for WP::parse_request() about the new return value. 2022-03-02 15:40:01 +00:00
class.wp-dependencies.php Coding Standards: Replace else if with elseif after [52338]. 2021-12-07 17:49:01 +00:00
class.wp-scripts.php Docs: Replace "Current theme" with "Active theme" in various DocBlocks. 2022-01-20 23:53:05 +00:00
class.wp-styles.php Docs: Replace "Current theme" with "Active theme" in various DocBlocks. 2022-01-20 23:53:05 +00:00
comment-template.php Comments: Guard against potential PHP notices in get_comment_author and get_comment_ID. 2022-03-03 20:33:59 +00:00
comment.php Cache: Use wp_cache_*_multiple() in core functions. 2022-02-11 18:51:59 +00:00
compat.php Build/Test Tools: Update PHPCompatibilityWP to version 2.1.3. 2021-12-31 13:55:03 +00:00
cron.php Docs: Various docblock corrections and improvements. 2021-11-23 21:37:01 +00:00
date.php
default-constants.php Docs: Replace "Current theme" with "Active theme" in various DocBlocks. 2022-01-20 23:53:05 +00:00
default-filters.php Editor: Automatically apply global styles duotone filters to render in post editor. 2022-02-17 20:45:00 +00:00
default-widgets.php
deprecated.php Editor: Backport Duotone fixes for 5.9.1. 2022-02-17 16:18:03 +00:00
embed-template.php
embed.php Embeds: Fix oEmbed host script enqueueing on block-based themes. 2022-01-04 15:23:59 +00:00
error-protection.php
feed-atom-comments.php
feed-atom.php Feeds: Remove reference to wp-atom.php in Atom feeds xml:base attribute. 2021-11-29 09:52:00 +00:00
feed-rdf.php
feed-rss2-comments.php
feed-rss2.php
feed-rss.php
feed.php
formatting.php Docs: Add inline comments for non-visible characters in sanitize_title_with_dashes(). 2022-03-04 14:11:02 +00:00
functions.php Media: Revert query string support for wp_check_filetype(). 2022-03-09 00:48:05 +00:00
functions.wp-scripts.php Docs: Provide a more accurate description for a few script and style functions. 2021-09-02 08:30:58 +00:00
functions.wp-styles.php Script Loader: Document path as an accepted value for $key in wp_style_add_data(). 2021-11-19 15:14:00 +00:00
general-template.php Administration: Add "File" to Theme/Plugin Editor menu names and relocate "Plugin File Editor" to Tools for block themes. 2021-12-21 20:06:02 +00:00
global-styles-and-settings.php Editor: Backport Duotone fixes for 5.9.1. 2022-02-17 16:18:03 +00:00
http.php Docs: Correct description for two HTTP API functions: 2022-01-13 01:04:01 +00:00
https-detection.php Docs: Various inline documentation corrections and improvements. 2021-12-07 12:20:02 +00:00
https-migration.php
kses.php Docs: Fix an error in wp_kses_attr() docblock. 2022-02-08 16:25:01 +00:00
l10n.php Docs: Typo correction in wp_dropdown_languages() DocBlock. 2021-12-20 22:26:02 +00:00
link-template.php Database: Add missing AS after INNER JOIN in some queries. 2022-01-11 04:12:05 +00:00
load.php Application Passwords: Show HTTPS required message without filtering when not enabled or not in local environment. 2021-12-21 02:45:03 +00:00
locale.php
media-template.php Media: Move dismiss upload errors button after errors. 2021-11-17 15:56:03 +00:00
media.php Media: Make get_post_galleries() only return galleries. 2022-02-25 12:44:04 +00:00
meta.php Cache: Use wp_cache_*_multiple() in core functions. 2022-02-11 18:51:59 +00:00
ms-blogs.php
ms-default-constants.php Code Modernization: Check the return type of parse_url() in ms_cookie_constants(). 2021-08-17 22:08:57 +00:00
ms-default-filters.php Posts, Post Types: Multisite: Decrement post_count option value when a post is deleted. 2021-11-18 15:11:59 +00:00
ms-deprecated.php
ms-files.php Multisite: Log error/warnings/notices from ms-files.php. 2021-07-06 20:21:57 +00:00
ms-functions.php Networks and Sites: Remove unnecessary commented code from remove_user_from_blog(). 2022-02-15 21:21:00 +00:00
ms-load.php
ms-network.php Cache: Use wp_cache_*_multiple() in core functions. 2022-02-11 18:51:59 +00:00
ms-settings.php
ms-site.php Docs: Update the DocBlock for the wpmu_new_blog action to suggest wp_initialize_site as an alternative. 2022-03-03 16:13:03 +00:00
nav-menu-template.php Coding Standards: Rename $r variable to $args for clarity in walk_nav_menu_tree(). 2022-02-07 14:01:05 +00:00
nav-menu.php Docs: Various inline documentation corrections and improvements. 2021-12-07 12:20:02 +00:00
option.php Cache: Use wp_cache_*_multiple() in core functions. 2022-02-11 18:51:59 +00:00
pluggable-deprecated.php
pluggable.php Code Modernization: Check the return type of wp_parse_url() in wp_mail(). 2022-02-25 13:48:00 +00:00
plugin.php Plugins: Correct the documented allowable types for to the $callback parameter of various hook related functions. 2021-12-01 13:22:01 +00:00
post-formats.php
post-template.php Coding Standards: Rename $r variable to $args for clarity in walk_page_tree(). 2022-02-07 14:21:01 +00:00
post-thumbnail-template.php Media: Add a missing / in post thumbnail lazy loading regex. 2022-01-14 11:02:06 +00:00
post.php Docs: Correct return type for get_post_custom(). 2022-02-24 21:26:02 +00:00
query.php Coding Standards: Remove a one-time $message variable in some _doing_it_wrong() calls. 2021-06-15 15:22:58 +00:00
registration-functions.php
registration.php
rest-api.php HTTP API: Revert changeset [52244]. 2021-12-06 21:30:03 +00:00
revision.php Revisions: Improve _set_preview for case when autosave is missing. 2022-01-04 00:20:01 +00:00
rewrite.php
robots-template.php
rss-functions.php
rss.php
script-loader.php Editor: Automatically apply global styles duotone filters to render in post editor. 2022-02-17 20:45:00 +00:00
session.php
shortcodes.php Coding Standards: Remove a one-time $message variable in some _doing_it_wrong() calls. 2021-06-15 15:22:58 +00:00
sitemaps.php
spl-autoload-compat.php
taxonomy.php Taxonomy: Improve code quality within _prime_term_caches(). 2022-03-08 04:25:06 +00:00
template-canvas.php Docs: Correct the format of some comments per the documentation standards. 2021-12-10 20:30:05 +00:00
template-loader.php
template.php
theme-i18n.json Update theme.json classes for WordPress 5.9. 2021-11-08 19:19:58 +00:00
theme-templates.php Themes: Auto-enable block-templates support for all block themes. 2021-12-09 09:56:04 +00:00
theme.json Update @wordpress packages for Beta 4 2021-12-21 07:02:34 +00:00
theme.php Themes: Correct the logic for displaying a _doing_it_wrong() notice for add_theme_support( 'html5' ). 2022-03-07 14:44:01 +00:00
update.php Docs: Replace "Current theme" with "Active theme" in various DocBlocks. 2022-01-20 23:53:05 +00:00
user.php Users: Return a WP_Error from wp_insert_user() if the user_url field is too long. 2022-01-29 14:25:03 +00:00
vars.php General: Improve MS Edge user-agent sniff. 2022-03-07 02:38:01 +00:00
version.php Taxonomy: Only store term_ids and object_ids in WP_Term_Query query caches. 2022-03-10 10:58:09 +00:00
widgets.php Docs: Capitalize "ID", when referring to a widget ID or sidebar ID, in a more consistent way. 2021-12-13 10:21:07 +00:00
wlwmanifest.xml
wp-db.php Docs: Further corrections and improvements to the inline documentation for wpdb. 2021-12-29 23:14:01 +00:00
wp-diff.php