[wp-trac] [WordPress Trac] #37291: Check for WP_Error before echo in the_tags()

WordPress Trac noreply at wordpress.org
Tue Oct 11 01:56:00 UTC 2016

#37291: Check for WP_Error before echo in the_tags()
 Reporter:  michalzuber              |       Owner:  boonebgorges
     Type:  defect (bug)             |      Status:  closed
 Priority:  normal                   |   Milestone:  4.6.2
Component:  Taxonomy                 |     Version:
 Severity:  normal                   |  Resolution:  fixed
 Keywords:  has-patch needs-testing  |     Focuses:
Changes (by boonebgorges):

 * owner:   => boonebgorges
 * status:  new => closed
 * resolution:   => fixed


 In [changeset:"38776"]:
 #!CommitTicketReference repository="" revision="38776"
 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

 * 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.

Ticket URL: <https://core.trac.wordpress.org/ticket/37291#comment:7>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform

More information about the wp-trac mailing list