[wp-trac] [WordPress Trac] #37189: In wp_term_query on cache ids

WordPress Trac noreply at wordpress.org
Thu Jun 22 02:27:28 UTC 2017

#37189: In wp_term_query on cache ids
 Reporter:  spacedmonkey  |       Owner:
     Type:  enhancement   |      Status:  new
 Priority:  normal        |   Milestone:  4.9
Component:  Taxonomy      |     Version:  4.6
 Severity:  normal        |  Resolution:
 Keywords:  has-patch     |     Focuses:  performance

Comment (by boonebgorges):

 [attachment:37189.4.patch] makes the following changes:

 * Cache key is now generated using a technique close to what @spacedmonkey
 originally suggested.
 * The cache is now populated by an array of `stdClass` objects (the raw
 results of the `get_results()` query). In most cases, it looks like this:
 `[ { term_id: 15 }, { term_id: 17 } ]`. In the case of
 `all_with_object_id`, it looks like this: `[ { term_id: 15, object_id: 123
 } ... ]`. Storing data like this means it's possible to share the same
 logic when populating `object_id` from the cache vs from a database query.
 I've also added a test demonstrating cache support for these queries.

 The second bullet point also means that I can drop the `stdClass` trick
 for `fields=ids`, since the results of `$wpdb->get_results( "SELECT
 term_id FROM ..." )` will be an array of `stdClass` objects. There's still
 the matter of ensuring that post-query processing later in the method
 doesn't attempt to operate on these items, but I feel that this little bit
 of maintenance overhead is worth the benefit of a true `fields=ids` query.

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

More information about the wp-trac mailing list