WordPress/wp-includes
Boone Gorges e97ab5362b Taxonomy: Better error handling when fetching object terms from cache.
Since [37573], `get_object_term_cache()` has expected term IDs to be
stored in the taxonomy relationship cache. The function would then
reach directly into the 'terms' cache to fetch the data corresponding
to a given term, before returning a `WP_Term` object. This caused
problems when, for one reason or another, term data was cached
inconsistently:

* If the 'terms' cache is empty for a given term ID, despite the earlier call to `_prime_term_caches()`, `get_term()` would return an error object.
* If the array of cached term IDs contains an invalid ID, `get_term()` would return an error object.

We avoid these errors by no longer touching the 'terms' cache directly,
but running term IDs through `get_term()` and allowing that function to
reference the cache (and database, as needed). If `get_term()` returns
an error object for any of the cached term IDs, `get_object_term_cache()`
will return that error object alone. This change ensures that upstream
functions, like `get_the_terms()`, return `WP_Error` objects in a
predictable fashion.

Props dd32, michalzuber.
Fixes #37291.
Built from https://develop.svn.wordpress.org/trunk@38776


git-svn-id: http://core.svn.wordpress.org/trunk@38719 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-10-11 01:56:29 +00:00
..
certificates
css Toolbar: Update links to the about page if current user can't access the dashboard of the current site. 2016-09-27 19:01:29 +00:00
customize Administration: Improve the usage of the button CSS classes. 2016-09-28 19:54:28 +00:00
fonts
ID3
images
IXR XML-RPC: break up class-IXR.php into individual class files. 2016-08-26 22:08:33 +00:00
js TinyMCE: add support for custom dashicon for wp.mce.View.setLoader(). 2016-10-11 00:56:29 +00:00
pomo
random_compat
Requests HTTP: Update Requests to master (0048f3c) which fixes a number of outstanding issues. 2016-10-05 03:24:37 +00:00
rest-api Docs: Improve formatting of filter docs added in [38689]. 2016-10-07 19:24:28 +00:00
SimplePie
Text
theme-compat Embeds: Don't print the HTML for a featured image if a post has no featured image. 2016-07-06 17:08:31 +00:00
widgets Docs: Correct various documentation around object and stdClass types. 2016-08-26 16:49:45 +00:00
admin-bar.php Toolbar: Be more strict about adding a 'View Posts' link to the toolbar. 2016-10-03 08:38:29 +00:00
atomlib.php
author-template.php I18N: Add translator comments for strings in wp-includes/author-template.php. 2016-08-23 23:18:29 +00:00
bookmark-template.php
bookmark.php
cache.php Multisite: use get_current_blog_id() where applicable, in lieu of plucking the $blog_id global from outer space. 2016-08-31 04:55:54 +00:00
canonical.php Improve category check in redirect_canonical() when permastruct contains category slug. 2016-08-08 18:49:28 +00:00
capabilities.php Taxonomy: Introduce more fine grained capabilities for managing taxonomy terms. 2016-09-30 22:40:28 +00:00
category-template.php Hooks: Standardize naming of dynamic hooks to use interpolation vs concatenation. 2016-08-22 18:25:31 +00:00
category.php Docs: Use 3-digit, x.x.x-style semantic versioning for _doing_it_wrong(), _deprecated_function(), _deprecated_argument(), and _deprecated_file() throughout core. 2016-07-06 12:40:29 +00:00
class-http.php HTTP: Update Requests to master (0048f3c) which fixes a number of outstanding issues. 2016-10-05 03:24:37 +00:00
class-IXR.php Bootstrap: do not go gentle into that good night r38411, r38412, and parts of r38389. 2016-08-31 16:31:29 +00:00
class-json.php
class-oembed.php Embeds: Add oEmbed support for User, List and Like Twitter timelines. 2016-09-30 21:42:28 +00:00
class-phpass.php
class-phpmailer.php Bootstrap: do not go gentle into that good night r38411, r38412, and parts of r38389. 2016-08-31 16:31:29 +00:00
class-pop3.php
class-requests.php HTTP: Update Requests to master (0048f3c) which fixes a number of outstanding issues. 2016-10-05 03:24:37 +00:00
class-simplepie.php Autoload: Introduce shim for SPL autoloading. 2016-06-06 03:24:29 +00:00
class-smtp.php
class-snoopy.php Docs: Use 3-digit, x.x.x-style semantic versioning for _doing_it_wrong(), _deprecated_function(), _deprecated_argument(), and _deprecated_file() throughout core. 2016-07-06 12:40:29 +00:00
class-walker-category-dropdown.php
class-walker-category.php
class-walker-comment.php I18N: Add translator comments for strings in wp-includes/class-walker-comment.php. 2016-08-23 23:33:28 +00:00
class-walker-nav-menu.php Menus: Fix notices thrown by classes extending Walker_Nav_Menu. 2016-09-08 07:06:30 +00:00
class-walker-page-dropdown.php
class-walker-page.php Menus: Add white space option to wp_nav_menu() and wp_list_pages(). 2016-09-06 09:06:31 +00:00
class-wp-admin-bar.php General: revert [38467], wp_is_IE() should not exist. 2016-08-31 15:22:31 +00:00
class-wp-ajax-response.php AJAX: add a new function, wp_doing_ajax(), which can replace... (wait for it...) DOING_AJAX checks via the constant. 2016-08-23 14:33:30 +00:00
class-wp-comment-query.php General: Restore usage of $wpdb, instead of $this->db. 2016-10-10 06:38:31 +00:00
class-wp-comment.php Don't improperly cast IDs when fetching post, user, or term objects. 2016-08-26 19:09:27 +00:00
class-wp-customize-control.php Customize: Let static_front_page section be contextually active based on whether there are any published pages. 2016-09-20 00:47:30 +00:00
class-wp-customize-manager.php Customize: Ensure customize_validate_{$setting->id} filters apply on input post values for WP_Customize_Setting subclasses that neglect to apply the filter themselves. 2016-10-09 20:08:32 +00:00
class-wp-customize-nav-menus.php Customize: Show Pages section first and pre-expanded in list of available nav menu items. 2016-10-09 23:41:30 +00:00
class-wp-customize-panel.php Bootstrap: do not go gentle into that good night r38411, r38412, and parts of r38389. 2016-08-31 16:31:29 +00:00
class-wp-customize-section.php Bootstrap: do not go gentle into that good night r38411, r38412, and parts of r38389. 2016-08-31 16:31:29 +00:00
class-wp-customize-setting.php Bootstrap: do not go gentle into that good night r38411, r38412, and parts of r38389. 2016-08-31 16:31:29 +00:00
class-wp-customize-widgets.php Customize: Improve message displayed in widgets panel when there are no widget areas currently displayed in the preview. 2016-10-09 21:09:31 +00:00
class-wp-dependency.php Script Loader: move _WP_Dependency into its own file. 2016-08-26 18:06:39 +00:00
class-wp-editor.php TiinyMCE: update to 4.4.3, changelog: https://www.tinymce.com/docs/changelog/#version443-september12016 2016-10-11 00:10:32 +00:00
class-wp-embed.php Embed: wp-settings.php loads class-wp-embed.php, which currently produces side effects. Move the global instantiation to wp-settings.php. WP_Embed is then in a file by itself. 2016-08-26 09:53:28 +00:00
class-wp-error.php Load: move is_wp_error() to load.php so that WP_Error is in a file by itself. 2016-08-26 09:58:28 +00:00
class-wp-feed-cache-transient.php Feed: move 'WP_Feed_Cache', 'WP_Feed_Cache_Transient', WP_SimplePie_File and WP_SimplePie_Sanitize_KSES into their own files via svn cp. If we move forard with autoloading, class-feed.php is useless. We could even remove it now, and just load these new files in wp-settings.php. That can be decided post-mortem. class-feed.php is an interesting name: there is no Feed or WP_Feed class. 2016-08-25 18:18:39 +00:00
class-wp-feed-cache.php Feed: move 'WP_Feed_Cache', 'WP_Feed_Cache_Transient', WP_SimplePie_File and WP_SimplePie_Sanitize_KSES into their own files via svn cp. If we move forard with autoloading, class-feed.php is useless. We could even remove it now, and just load these new files in wp-settings.php. That can be decided post-mortem. class-feed.php is an interesting name: there is no Feed or WP_Feed class. 2016-08-25 18:18:39 +00:00
class-wp-hook.php Docs: Fix minor formatting for inline docs in WP_Hook following its introduction in [38571]. 2016-09-08 04:17:30 +00:00
class-wp-http-cookie.php HTTP API: Normalize cookies before passing them to Requests. 2016-07-27 15:32:27 +00:00
class-wp-http-curl.php
class-wp-http-encoding.php DOCS: Replace HTTP links with HTTPS. 2016-06-10 04:50:33 +00:00
class-wp-http-ixr-client.php
class-wp-http-proxy.php
class-wp-http-requests-response.php HTTP: Document that the return value of wp_remote_retrieve_headers() changed from a simple array to an object which implements ArrayAccess. 2016-10-05 03:51:28 +00:00
class-wp-http-response.php HTTP: in WP_HTTP_Response, the @param declarations for $status and $headers were swapped. Let us correct this. 2016-08-22 21:28:27 +00:00
class-wp-http-streams.php
class-wp-image-editor-gd.php Bootstrap: Enhance core's memory limit handling. 2016-07-08 14:37:30 +00:00
class-wp-image-editor-imagick.php Bootstrap: Enhance core's memory limit handling. 2016-07-08 14:37:30 +00:00
class-wp-image-editor.php Media: when calling pathinfo(), also pass a PATHINFO_* constant to avoid array notices for unset keys. 2016-08-20 23:36:28 +00:00
class-wp-locale.php General: use get_bloginfo( 'version' ) instead of global $wp_version in several locations - excluding those locations which reload version.php mid-flight. 2016-08-31 05:49:37 +00:00
class-wp-matchesmapregex.php Load: move WP_MatchesMapRegex into its own file. 2016-08-26 18:11:39 +00:00
class-wp-meta-query.php General: Restore usage of $wpdb, instead of $this->db. 2016-10-10 06:38:31 +00:00
class-wp-metadata-lazyloader.php
class-wp-network-query.php General: Restore usage of $wpdb, instead of $this->db. 2016-10-10 06:38:31 +00:00
class-wp-network.php Docs: Supplement a changelog entry in the DocBlock for the $id property in WP_Network. 2016-06-29 19:35:28 +00:00
class-wp-oembed-controller.php
class-wp-post-type.php Docs: Use a third-person singular verb for register_post_type_args filter added in [34242]. 2016-09-14 21:58:29 +00:00
class-wp-post.php Don't improperly cast IDs when fetching post, user, or term objects. 2016-08-26 19:09:27 +00:00
class-wp-query.php General: Restore usage of $wpdb, instead of $this->db. 2016-10-10 06:38:31 +00:00
class-wp-rewrite.php Make sure rewrite rules are not written until wp_loaded has fired 2016-10-07 19:44:28 +00:00
class-wp-role.php
class-wp-roles.php General: Restore usage of $wpdb, instead of $this->db. 2016-10-10 06:38:31 +00:00
class-wp-session-tokens.php Session: move WP_Session_Tokens and WP_User_Meta_Session_Tokens into their own files via svn cp. If we move forard with autoloading, session.php is useless. We could even remove it now, and just load these new files in wp-settings.php. That can be decided post-mortem. 2016-08-25 17:44:31 +00:00
class-wp-simplepie-file.php Feed: move 'WP_Feed_Cache', 'WP_Feed_Cache_Transient', WP_SimplePie_File and WP_SimplePie_Sanitize_KSES into their own files via svn cp. If we move forard with autoloading, class-feed.php is useless. We could even remove it now, and just load these new files in wp-settings.php. That can be decided post-mortem. class-feed.php is an interesting name: there is no Feed or WP_Feed class. 2016-08-25 18:18:39 +00:00
class-wp-simplepie-sanitize-kses.php Feed: move 'WP_Feed_Cache', 'WP_Feed_Cache_Transient', WP_SimplePie_File and WP_SimplePie_Sanitize_KSES into their own files via svn cp. If we move forard with autoloading, class-feed.php is useless. We could even remove it now, and just load these new files in wp-settings.php. That can be decided post-mortem. class-feed.php is an interesting name: there is no Feed or WP_Feed class. 2016-08-25 18:18:39 +00:00
class-wp-site-query.php General: Restore usage of $wpdb, instead of $this->db. 2016-10-10 06:38:31 +00:00
class-wp-site.php Multisite: Add annotations for extended WP_Site properties. 2016-09-20 17:22:29 +00:00
class-wp-tax-query.php General: Restore usage of $wpdb, instead of $this->db. 2016-10-10 06:38:31 +00:00
class-wp-taxonomy.php Taxonomy: Introduce WP_Taxonomy and use it in register_taxonomy() and unregister_taxonomy(). 2016-10-07 17:12:29 +00:00
class-wp-term-query.php General: Restore usage of $wpdb, instead of $this->db. 2016-10-10 06:38:31 +00:00
class-wp-term.php Don't improperly cast IDs when fetching post, user, or term objects. 2016-08-26 19:09:27 +00:00
class-wp-text-diff-renderer-inline.php Diff: move WP_Text_Diff_Renderer_inline (behold that lowercase "i") and WP_Text_Diff_Renderer_Table into their own files via svn cp. 2016-08-25 17:37:30 +00:00
class-wp-text-diff-renderer-table.php Diff: move WP_Text_Diff_Renderer_inline (behold that lowercase "i") and WP_Text_Diff_Renderer_Table into their own files via svn cp. 2016-08-25 17:37:30 +00:00
class-wp-theme.php I18N: Introduce a user-specific language setting. 2016-10-03 07:04:29 +00:00
class-wp-user-meta-session-tokens.php Session: move WP_Session_Tokens and WP_User_Meta_Session_Tokens into their own files via svn cp. If we move forard with autoloading, session.php is useless. We could even remove it now, and just load these new files in wp-settings.php. That can be decided post-mortem. 2016-08-25 17:44:31 +00:00
class-wp-user-query.php General: Restore usage of $wpdb, instead of $this->db. 2016-10-10 06:38:31 +00:00
class-wp-user.php General: Restore usage of $wpdb, instead of $this->db. 2016-10-10 06:38:31 +00:00
class-wp-walker.php
class-wp-widget-factory.php Docs: Fix formatting, tense, verb conjugation, and other syntax for wp-includes/* elements introduced or changed in 4.6. 2016-07-20 16:57:32 +00:00
class-wp-widget.php Widgets: $option_name and $alt_option_name have been used as members ever since WP_Widget became an object in 2.8, but never declared. 2016-08-22 21:51:28 +00:00
class-wp-xmlrpc-server.php XML-RPC: Re-add a global $wpdb missed in [38768]. 2016-10-11 01:43:31 +00:00
class-wp.php Pings/Trackbacks: Add filter argument to fetching of pingbacks_url in X-pingback header 2016-09-28 19:28:30 +00:00
class.wp-dependencies.php Script Loader: move _WP_Dependency into its own file. 2016-08-26 18:06:39 +00:00
class.wp-scripts.php Docs: Use 3-digit, x.x.x-style semantic versioning for _doing_it_wrong(), _deprecated_function(), _deprecated_argument(), and _deprecated_file() throughout core. 2016-07-06 12:40:29 +00:00
class.wp-styles.php
comment-template.php Set default value of 'max_depth' in get_comment_reply_link(). 2016-09-28 04:20:55 +00:00
comment.php Comments: Pass $comment to the comment_max_links_url filter. 2016-10-07 18:32:29 +00:00
compat.php Docs: Replace some more HTTP links with HTTPS. 2016-08-10 16:10:31 +00:00
cron.php Cron: clarify descriptions for Cron API functions. 2016-08-26 09:22:30 +00:00
date.php General: Restore usage of $wpdb, instead of $this->db. 2016-10-10 06:38:31 +00:00
default-constants.php Upgrade/Install: Automatically log users in after installation. 2016-09-18 11:42:30 +00:00
default-filters.php Resource Hints: Increase priority of wp_resource_hints() so hints get printed before scripts and styles. 2016-07-13 12:54:28 +00:00
default-widgets.php
deprecated.php Themes: Remove paged.php from the theme template hierarchy. 2016-10-07 21:03:31 +00:00
embed-template.php Docs: Use 3-digit, x.x.x-style semantic versioning for _doing_it_wrong(), _deprecated_function(), _deprecated_argument(), and _deprecated_file() throughout core. 2016-07-06 12:40:29 +00:00
embed.php OEmbed: move _wp_oembed_get_object() to embed.php, where all of the other embed functions live. WP_oEmbed is then in a file by itself. Load class-oembed.php in wp-settings.php and remove extraneous include calls. 2016-08-26 09:49:28 +00:00
feed-atom-comments.php DOCS: Replace HTTP links with HTTPS. 2016-06-10 04:50:33 +00:00
feed-atom.php
feed-rdf.php
feed-rss.php
feed-rss2-comments.php
feed-rss2.php
feed.php Bootstrap: do not go gentle into that good night r38411, r38412, and parts of r38389. 2016-08-31 16:31:29 +00:00
formatting.php Emoji: Add support for the upcoming Emoji 4 release. 2016-10-04 03:24:30 +00:00
functions.php Add 'urn' to the list of URI protocols whitelisted by default. 2016-09-30 13:15:28 +00:00
functions.wp-scripts.php Script Loader: Correct default value for $src in wp_enqueue_script() and wp_enqueue_style(). 2016-09-04 04:09:28 +00:00
functions.wp-styles.php Script Loader: Correct default value for $src in wp_enqueue_script() and wp_enqueue_style(). 2016-09-04 04:09:28 +00:00
general-template.php Emoji: Update Emoji CDN filter default for resource hints. 2016-10-09 04:24:31 +00:00
http.php HTTP: Document that the return value of wp_remote_retrieve_headers() changed from a simple array to an object which implements ArrayAccess. 2016-10-05 03:51:28 +00:00
kses.php Formatting: Allow KSES custom elements with hyphens 2016-09-02 04:16:28 +00:00
l10n.php I18N: Introduce a user-specific language setting. 2016-10-03 07:04:29 +00:00
link-template.php Taxonomy: Introduce more fine grained capabilities for managing taxonomy terms. 2016-09-30 22:40:28 +00:00
load.php Multisite: Revert [38388]. 2016-09-20 21:39:29 +00:00
media-template.php General: revert [38467], wp_is_IE() should not exist. 2016-08-31 15:22:31 +00:00
media.php Media: Remove an extra space in style attribute in wp_video_shortcode() after [30082]. 2016-09-13 13:45:31 +00:00
meta.php Meta: Improve ID casting when getting, updating or deleting meta data. 2016-10-01 06:28:30 +00:00
ms-blogs.php Multisite: Use get_sites() instead of a database lookup in get_id_from_blogname(). 2016-09-27 18:18:28 +00:00
ms-default-constants.php Docs: Use 3-digit, x.x.x-style semantic versioning for _doing_it_wrong(), _deprecated_function(), _deprecated_argument(), and _deprecated_file() throughout core. 2016-07-06 12:40:29 +00:00
ms-default-filters.php
ms-deprecated.php Multisite: use get_current_site() instead of $GLOBALS['current_site'] (stop yelling!) in a few remaining spots. 2016-08-31 05:04:29 +00:00
ms-files.php Multsite: Flush output buffer after readfile() in ms-files.php. 2016-09-27 20:05:28 +00:00
ms-functions.php Multisite: Allow to set the site language of a new site to English. 2016-09-26 18:39:32 +00:00
ms-load.php Multisite: Ensure a consistent WP_Site return from get_site_by_path(). 2016-09-30 04:10:27 +00:00
ms-settings.php Bootstrap: do not go gentle into that good night r38411, r38412, and parts of r38389. 2016-08-31 16:31:29 +00:00
nav-menu-template.php Menus: Improve documentation of new $item_spacing argument. 2016-09-08 05:32:03 +00:00
nav-menu.php Menus: Do not show trashed posts in nav menus. 2016-10-07 16:50:29 +00:00
option.php Options: Move register_setting() from wp-admin to wp-includes. 2016-09-30 15:53:29 +00:00
pluggable-deprecated.php Docs: Use 3-digit, x.x.x-style semantic versioning for _doing_it_wrong(), _deprecated_function(), _deprecated_argument(), and _deprecated_file() throughout core. 2016-07-06 12:40:29 +00:00
pluggable.php Bootstrap: do not go gentle into that good night r38411, r38412, and parts of r38389. 2016-08-31 16:31:29 +00:00
plugin.php Bootstrap: Use dirname() when loading class-wp-hook.php from plugin.php. 2016-09-12 01:50:30 +00:00
post-formats.php
post-template.php Docs: Document global variables used by get_the_content(). 2016-10-07 17:00:29 +00:00
post-thumbnail-template.php Post Thumbnails: Add helper functions for attachment captions. 2016-06-29 17:28:28 +00:00
post.php Toolbar: Add a 'View Posts' link to the toolbar when on the post listing screen. 2016-09-20 20:02:28 +00:00
query.php Query: in wp_old_slug_redirect(), use get_query_var() instead of importing and touching the global $wp_query directly. 2016-08-31 06:21:41 +00:00
registration-functions.php Docs: Use 3-digit, x.x.x-style semantic versioning for _doing_it_wrong(), _deprecated_function(), _deprecated_argument(), and _deprecated_file() throughout core. 2016-07-06 12:40:29 +00:00
registration.php Docs: Use 3-digit, x.x.x-style semantic versioning for _doing_it_wrong(), _deprecated_function(), _deprecated_argument(), and _deprecated_file() throughout core. 2016-07-06 12:40:29 +00:00
rest-api.php REST API: remove unnecessary variable assignments in rest_handle_options_request(). 2016-08-22 20:56:28 +00:00
revision.php Post Thumbnails: Prevent post thumbnail previews from spilling into other images. 2016-08-29 12:25:29 +00:00
rewrite.php
rss-functions.php Docs: Use 3-digit, x.x.x-style semantic versioning for _doing_it_wrong(), _deprecated_function(), _deprecated_argument(), and _deprecated_file() throughout core. 2016-07-06 12:40:29 +00:00
rss.php Docs: Use 3-digit, x.x.x-style semantic versioning for _doing_it_wrong(), _deprecated_function(), _deprecated_argument(), and _deprecated_file() throughout core. 2016-07-06 12:40:29 +00:00
script-loader.php Customize: Add wp-util as a dependency for customize-controls. 2016-09-20 13:24:31 +00:00
shortcodes.php Shortcodes: Add a do_shortcode_tag filter. 2016-10-04 00:39:37 +00:00
taxonomy.php Taxonomy: Better error handling when fetching object terms from cache. 2016-10-11 01:56:29 +00:00
template-loader.php Themes: Remove paged.php from the theme template hierarchy. 2016-10-07 21:03:31 +00:00
template.php Themes: Remove paged.php from the theme template hierarchy. 2016-10-07 21:03:31 +00:00
theme.php Customize: Opt to disable IE8 support via conditional comments instead of using unreliable Array.prototype.indexOf feature detection. 2016-09-25 04:35:32 +00:00
update.php Bootstrap: do not go gentle into that good night r38411, r38412, and parts of r38389. 2016-08-31 16:31:29 +00:00
user.php I18N: Introduce a user-specific language setting. 2016-10-03 07:04:29 +00:00
vars.php General: revert [38467], wp_is_IE() should not exist. 2016-08-31 15:22:31 +00:00
version.php Taxonomy: Better error handling when fetching object terms from cache. 2016-10-11 01:56:29 +00:00
widgets.php
wlwmanifest.xml
wp-db.php Database: Fall back to utf8 when utf8mb4 isn't supported. 2016-09-08 23:49:30 +00:00
wp-diff.php Bootstrap: do not go gentle into that good night r38411, r38412, and parts of r38389. 2016-08-31 16:31:29 +00:00