WordPress/wp-includes
Boone Gorges 91a5e4c502 Make `get_term()` behave more consistently in the context of shared terms.
When `WP_Term` was introduced in [34997], the `$taxonomy` parameter for
`get_term()` was made optional. This meant that, when the optional param was
omitted, `get_term()` had no way of determining which term was intended when
the term_id was shared between multiple taxonomies. As a (somewhat sneaky) way
of fixing things, `get_term()` split any shared terms it found. But this could
cause problems with developer expectations: it's not clear why requesting a
term should result in a database update, much less a potential change in the
ID of a term.

In place of this technique, this changeset introduces a number of changes that
make the handling of shared terms a bit less insane:

* When a taxonomy is provided to `get_term()`, and a cached term is found matching the term_id, make sure the taxonomy also matches before returning it.
* When a taxonomy is not provided, ensure that the term is not shared before adding it to the cache.
* When a term is shared between taxonomies and no taxonomy is provided, return a `WP_Error` rather than splitting the term.
* When a term is shared between taxonomies, only one of which is valid, return the term from that taxonomy.

Props boonebgorges, dlh.
Fixes #34533.
Built from https://develop.svn.wordpress.org/trunk@35537


git-svn-id: http://core.svn.wordpress.org/trunk@35501 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-11-05 16:45:25 +00:00
..
ID3
SimplePie Feeds: add `CEST` to `$timezone` in `SimplePie_Parse_Date`. 2015-10-20 05:57:24 +00:00
Text Fix the `@author` doc param encoding in `Text/Diff/Engine/string` so the file is recognized as UTF-8, not ISO-8859-1. 2015-10-24 22:45:25 +00:00
certificates
css Media Library: After [35499], increase the specificity of our selectors so that they don't cause problems for the `wp-admin` Media Library page. 2015-11-04 23:43:26 +00:00
customize Customize: Hide "Change" button in themes section if there are fewer than two available themes. 2015-11-05 01:26:25 +00:00
fonts
images Embeds: Revert [35083], as the PNG files ended up not being used in [35466]. 2015-10-31 04:42:25 +00:00
js WP oEmbed: Improve the Sharing dialog accessibility. 2015-11-03 15:49:27 +00:00
pomo
random_compat Update Random_Compat to master. 2015-10-28 01:12:24 +00:00
rest-api REST API: in `WP_REST_Server::dispatch()`, move `preg_match()` out of it's current loop, which doesn't affect the context passed to it. 2015-11-04 21:23:25 +00:00
theme-compat Don't use `<a>` in translatable strings in `theme-compat/sidebar.php`. 2015-10-30 10:40:26 +00:00
widgets Widgets: revert [34376] and [34386] as pertains to the Categories widget supporting custom taxonomies. 2015-10-20 04:57:25 +00:00
admin-bar.php Docs: Add missing file headers to two Toolbar API files: wp-includes/admin-bar.php and wp-includes/class-wp-admin-bar.php. 2015-10-14 17:27:25 +00:00
atomlib.php
author-template.php Docs: Add missing descriptions for the `$wpdb` global in DocBlocks all the places. 2015-10-14 23:44:25 +00:00
bookmark-template.php
bookmark.php
cache.php Filesystem: Following the introduction of the `KB|MB|GB|TB_IN_BYTES` constants in [35286], use them in various places in core. 2015-10-21 14:03:25 +00:00
canonical.php Canonical: when `/%post_id%/` is the permalink structure, don't redirect IDs that match Auto Drafts. 2015-10-31 20:54:25 +00:00
capabilities-functions.php Roles: map `add_users` cap to `promote_users` and remove it. 2015-11-04 17:54:25 +00:00
capabilities.php
category-functions.php Taxonomy: Improve deprecated argument strings for the 'link' type in `get_categories()` and `wp_dropdown_categories()`. 2015-10-18 15:35:24 +00:00
category-template.php In `wp_list_categories()`, rewrite a long condition for clarity. 2015-10-20 16:13:26 +00:00
category.php
class-IXR.php XMLRPC: ensure that empty strings are not passed as `null`, which will then fail `isset()` 2015-11-04 18:08:25 +00:00
class-feed.php
class-http.php Docs: Syntax fixes for deprecating `WP_Http::parse_url()`. 2015-10-23 15:43:24 +00:00
class-json.php
class-oembed.php oEmbed: add Reddit Comments as a provider 2015-10-22 18:17:24 +00:00
class-phpass.php Remove closing PHP tag from `wp-includes/class-phpass.php`. 2015-10-06 23:45:25 +00:00
class-phpmailer.php
class-pop3.php
class-simplepie.php
class-smtp.php
class-snoopy.php
class-walker-category-dropdown.php
class-walker-category.php Taxonomy: in `wp_list_categories()`, add an arg: `separator`, to allow the overriding of `<br/>`. 2015-10-13 17:02:25 +00:00
class-walker-comment.php Docs: some `@global object` vernaculars should be converted to the actual object type. 2015-10-10 15:45:25 +00:00
class-walker-page-dropdown.php
class-walker-page.php Docs: Actually, the subpackage for `Walker_Page` should be Template. 2015-09-22 15:09:24 +00:00
class-wp-admin-bar.php Docs: Add missing file headers to two Toolbar API files: wp-includes/admin-bar.php and wp-includes/class-wp-admin-bar.php. 2015-10-14 17:27:25 +00:00
class-wp-ajax-response.php
class-wp-comment-query.php `WP_Comment_Query`: Fill comment objects from database when cache is unavailable. 2015-11-04 21:09:27 +00:00
class-wp-comment.php Prevent extra db queries in `WP_Comment::get_children()`. 2015-10-01 03:58:23 +00:00
class-wp-customize-control.php Customize: move `WP_Customize_Control` subclasses to `wp-includes/customize`, they load in the exact same place. 2015-10-24 18:57:25 +00:00
class-wp-customize-manager.php Customize: Correct phpdoc `@return` type for `WP_Customize_Manager::add_dynamic_settings()`. 2015-11-05 00:43:24 +00:00
class-wp-customize-nav-menus.php Customize: Simplify condition for returning `nav_menus_invalid_post_type` error. 2015-11-04 07:29:25 +00:00
class-wp-customize-panel.php Customize: move `WP_Customize_Panel` subclass to `wp-includes/customize`, it loads in the exact same place. 2015-10-24 18:25:24 +00:00
class-wp-customize-section.php Customize: move `WP_Customize_Section` subclasses to `wp-includes/customize`, they load in the exact same place. 2015-10-24 18:21:25 +00:00
class-wp-customize-setting.php Customize: move `WP_Customize_Setting` subclasses to `wp-includes/customize`, they load in the exact same place. 2015-10-24 18:11:24 +00:00
class-wp-customize-widgets.php Docs: Change variable name in `WP_Customize_Widgets::filter_customize_dynamic_setting_args()` DocBlock to match the actual variable. 2015-10-24 14:42:26 +00:00
class-wp-editor.php Embeds: Rename TinyMCE `wpoembed` plugin to `wpembed`. 2015-10-26 14:50:26 +00:00
class-wp-embed.php Embeds: Add oEmbed provider support. 2015-10-07 10:36:25 +00:00
class-wp-error.php
class-wp-http-cookie.php Docs: object != class 2015-09-26 07:04:28 +00:00
class-wp-http-curl.php Don't set `CURLOPT_CAINFO` when `sslverify` is false when sending HTTP API requests through cURL. This avoids sending redundant information to cURL, and avoids a bug in Apple's SecureTransport library which causes a request to fail when a CA bundle is set but certificate verification is disabled. 2015-09-27 21:37:24 +00:00
class-wp-http-encoding.php
class-wp-http-ixr-client.php
class-wp-http-proxy.php
class-wp-http-response.php HTTP/REST API: move `WP_HTTP_Response` to `wp-includes/` with the rest (ha!) of the HTTP classes. This is PHP 5.2, so this class is global, and as per @rmccue, unrelated to REST specifically. 2015-10-08 19:27:28 +00:00
class-wp-http-streams.php Docs: object != class 2015-09-26 07:04:28 +00:00
class-wp-image-editor-gd.php Media: add a new image size, `medium_large`. Bumps db version to add new options. 2015-10-31 20:50:25 +00:00
class-wp-image-editor-imagick.php Media: add a new image size, `medium_large`. Bumps db version to add new options. 2015-10-31 20:50:25 +00:00
class-wp-image-editor.php
class-wp-meta-query.php Docs: Add missing descriptions for the `$wpdb` global in DocBlocks all the places. 2015-10-14 23:44:25 +00:00
class-wp-network.php Multisite: Remove the strictness for `$using_paths` in `WP_Network::get_by_path()`. 2015-10-15 22:07:24 +00:00
class-wp-oembed-controller.php Embeds: Fix typo in `oembed_request_post_id` filter DocBlock. 2015-10-31 15:38:25 +00:00
class-wp-post.php Docs: Add missing descriptions for the `$wpdb` global in DocBlocks all the places. 2015-10-14 23:44:25 +00:00
class-wp-rewrite.php Docs: Add a couple of strategically-placed spaces in `WP_Rewrite`. 2015-10-08 22:07:24 +00:00
class-wp-role.php
class-wp-roles.php Docs: Add missing descriptions for the `$wpdb` global in DocBlocks all the places. 2015-10-14 23:44:25 +00:00
class-wp-tax-query.php
class-wp-term.php Make `get_term()` behave more consistently in the context of shared terms. 2015-11-05 16:45:25 +00:00
class-wp-theme.php Template: Make it possible to both ''add'' and ''remove'' items from the page templates list using the `theme_page_templates` filter. 2015-10-09 21:51:25 +00:00
class-wp-user-query.php Docs: Add missing descriptions for the `$wpdb` global in DocBlocks all the places. 2015-10-14 23:44:25 +00:00
class-wp-user.php Docs: Add missing descriptions for the `$wpdb` global in DocBlocks all the places. 2015-10-14 23:44:25 +00:00
class-wp-walker.php
class-wp-widget-factory.php
class-wp-widget.php Widgets: when getting settings, and none exist, set them to empty to avoid extraneous database queries on subsequent requests. 2015-10-13 01:13:24 +00:00
class-wp-xmlrpc-server.php Media: add a new image size, `medium_large`. Bumps db version to add new options. 2015-10-31 20:50:25 +00:00
class-wp.php Embeds: Who put this REST API infrastructure in my WordPress? 2015-10-29 22:51:24 +00:00
class.wp-dependencies.php
class.wp-scripts.php Scripts: in `WP_Scripts::set_group()`, the `args` prop of the `_WP_Dependency` instance defaults to `null` - check that it is set before comparing. 2015-10-06 13:54:25 +00:00
class.wp-styles.php
comment-functions.php Comments: don't auto-close comments on draft posts. 2015-10-31 20:13:24 +00:00
comment-template.php Comments: Use `_n()` in `get_comments_number_text()` when setting the default string for multiple comments. 2015-11-05 15:36:28 +00:00
comment.php
compat.php Use PHP7's `random_int()` CSPRNG functionality in `wp_rand()` with a fallback to the `random_compat` library for PHP 5.x. 2015-10-09 04:28:24 +00:00
cron.php Cron: In `spawn_cron()`, when using `ALTERNATE_WP_CRON`, return early for any non-`GET`, instead of naively checking `! empty( $_POST )`. 2015-09-26 04:51:26 +00:00
date.php Ensure that `WP_Date_Query` accepts a value of `0` for 'hour'. 2015-10-09 16:33:25 +00:00
default-constants.php Docs: Correction: `MONTH_IN_SECONDS` was added in 4.4.0. 2015-10-20 07:35:26 +00:00
default-filters.php Introduce `wp_maybe_decline_date()` for languages where certain date formats need to be declined, and hook it to the `date_i18n` filter. 2015-11-04 21:28:26 +00:00
default-widgets.php
deprecated.php Filesystem: Following the introduction of the `KB|MB|GB|TB_IN_BYTES` constants in [35286], use them in various places in core. 2015-10-21 14:03:25 +00:00
embed-functions.php WP oEmbed: Improve the Sharing dialog accessibility. 2015-11-03 15:49:27 +00:00
embed-template.php WP oEmbed: Improve the Sharing dialog accessibility. 2015-11-03 15:49:27 +00:00
feed-atom-comments.php Themes: Improve document title output. 2015-10-20 16:21:25 +00:00
feed-atom.php Feeds: `<comments>` is optional in RSS2, so don't include it when comments aren't present or open. Same for `<wfw:commentRss>` and `<slash:comments>` 2015-11-04 17:47:25 +00:00
feed-rdf.php Themes: Improve document title output. 2015-10-20 16:21:25 +00:00
feed-rss.php Themes: Improve document title output. 2015-10-20 16:21:25 +00:00
feed-rss2-comments.php Themes: Improve document title output. 2015-10-20 16:21:25 +00:00
feed-rss2.php Feeds: `<comments>` is optional in RSS2, so don't include it when comments aren't present or open. Same for `<wfw:commentRss>` and `<slash:comments>` 2015-11-04 17:47:25 +00:00
feed.php Use correct placeholders for translator comments added in [35303]. 2015-10-24 18:50:24 +00:00
formatting.php Formatting: `wp_make_link_relative()` should return an empty string if no path is present in the link. 2015-11-03 21:36:25 +00:00
functions.php Introduce `wp_maybe_decline_date()` for languages where certain date formats need to be declined, and hook it to the `date_i18n` filter. 2015-11-04 21:28:26 +00:00
functions.wp-scripts.php
functions.wp-styles.php
general-template.php Editor: After [33927], make sure `user_can_richedit()` returns true for Microsoft Edge. 2015-10-24 18:13:24 +00:00
http-functions.php WP_HTTP: Promote the `WP_HTTP::parse_url()` method to a more generic `wp_parse_url()` function. 2015-10-23 05:54:25 +00:00
http.php After [34953], unbreak WordPress. 2015-10-08 19:29:25 +00:00
kses.php KSES: have you ever heard of the `<bdo>` HTML tag? Same. http://www.w3schools.com/tags/tag_bdo.asp 2015-10-13 17:18:25 +00:00
l10n.php Revert [34778], continue using `_site_option()` for the current network. 2015-10-07 17:11:25 +00:00
link-template.php Docs: Update the default scheme for `get_rest_url()` from 'json' to 'rest'. 2015-10-19 22:39:25 +00:00
load.php Move `wp_installing()` to load.php. 2015-10-07 03:02:23 +00:00
locale.php Revert [35372] because of possible encoding issues, needs more investigation. 2015-11-04 21:39:26 +00:00
media-template.php Media: Restore proper conditional statement broken after [35427]. 2015-10-30 22:06:24 +00:00
media.php Responsive images: do not generate `srcset` for GIFs that are inserted at full size. Prevents breaking animated GIFs. 2015-11-04 21:44:25 +00:00
meta-functions.php Docs: Add missing descriptions for the `$wpdb` global in DocBlocks all the places. 2015-10-14 23:44:25 +00:00
meta.php
ms-blogs.php Ensure that the scheme used in the URL returned by `get_blogaddress_by_id()` always reflects the blog's URL, instead of using `http`. 2015-10-30 02:02:24 +00:00
ms-default-constants.php Docs: Add missing descriptions for the `$wpdb` global in DocBlocks all the places. 2015-10-14 23:44:25 +00:00
ms-default-filters.php
ms-deprecated.php Docs: Add missing descriptions for the `$wpdb` global in DocBlocks all the places. 2015-10-14 23:44:25 +00:00
ms-files.php
ms-functions.php Filesystem: Following the introduction of the `KB|MB|GB|TB_IN_BYTES` constants in [35286], use them in various places in core. 2015-10-21 14:03:25 +00:00
ms-load.php Don't use `<a>` in translatable string in `wp-includes/ms-load.php`. 2015-10-30 09:16:25 +00:00
ms-settings.php Use `wp_installing()` instead of `WP_INSTALLING` constant. 2015-10-05 15:06:28 +00:00
nav-menu-template.php Nav Menus: show custom post type Archive item at the top of the `View All` tab for the post type on the legacy Nav Menu screen. 2015-10-24 17:46:25 +00:00
nav-menu.php Don't use `<strong>` in translatable string in `wp-includes/nav-menu.php`. 2015-10-30 08:57:26 +00:00
option.php Rename internal variable in `set_transient()`. 2015-10-29 11:52:28 +00:00
pluggable-deprecated.php
pluggable.php Mail: in `wp_notify_postauthor()` and `wp_notify_moderator()`, ensure that special chars aren't HTML-encoded in the email message body. 2015-10-28 18:03:24 +00:00
plugin.php `callback` is not a valid type in PHP, PSR-5, or phpDocumentor. `callable` should be used instead. 2015-09-25 23:58:25 +00:00
post-formats.php
post-functions.php Pages: Introduce the `get_page_uri` filter, which makes it possible to manipulate a given page's URI before it's returned from the like-named `get_page_uri()`. 2015-11-04 18:29:25 +00:00
post-template.php Docs: After [35399], correct `$class` parameter type and description for `post_class` filter. 2015-10-26 15:12:24 +00:00
post-thumbnail-template.php Docs: Adjust documentation for the `$size` parameter in `the_post_thumbnail_url()` to clarify the required order of width and height values when passing an array. 2015-10-12 17:00:26 +00:00
post.php
query.php Query: Introduce the `content_pagination` filter, which makes it possible to manipulate how post content is split into "pages" in `WP_Query::setup_postdata()`. 2015-10-20 06:33:27 +00:00
registration-functions.php
registration.php
rest-api.php After [34953], unbreak WordPress. 2015-10-08 19:29:25 +00:00
revision.php Docs: Correct description for `_wp_post_revision_fields()` arguments. 2015-10-22 12:17:28 +00:00
rewrite-constants.php
rewrite-functions.php In `WP::parse_request()` and `url_to_postid()`, don't skip objects that have a post status with `'exclude_from_search' => false`, e.g. `inherit`. 2015-10-15 17:53:24 +00:00
rewrite.php
rss-functions.php
rss.php
script-loader.php Embeds: Add fallbacks for IE7-9. 2015-10-31 04:38:25 +00:00
session.php
shortcodes.php Shortcodes: Tweak the error messages added in [34745]. 2015-10-29 10:32:26 +00:00
taxonomy-functions.php Make `get_term()` behave more consistently in the context of shared terms. 2015-11-05 16:45:25 +00:00
taxonomy.php Introduce `WP_Term`. 2015-10-10 01:59:29 +00:00
template-loader.php Embeds: Add oEmbed provider support. 2015-10-07 10:36:25 +00:00
template.php List the possible values for the dynamic portion of the `{type}_template` hook. 2015-10-28 14:06:27 +00:00
theme.php Themes: Improve document title output. 2015-10-20 16:21:25 +00:00
update.php Use `wp_installing()` instead of `WP_INSTALLING` constant. 2015-10-05 15:06:28 +00:00
user-functions.php Users: when calling `wp_insert_user()` with an valid user ID, return `WP_Error` instead of arbitrarily updating user meta. 2015-10-20 05:28:24 +00:00
user.php
vars.php
version.php Make `get_term()` behave more consistently in the context of shared terms. 2015-11-05 16:45:25 +00:00
widget-functions.php Widgets: When using `the_widget()`, the `$before_widget` argument only receives the widget class if using the default sidebar arguments. Run `sprintf` after parsing the args to fix this. 2015-10-13 01:49:48 +00:00
widgets.php
wlwmanifest.xml
wp-db.php Add `wp_load_translations_early()` to `wpdb::check_connection()`. 2015-10-08 17:11:24 +00:00
wp-diff.php