[wp-trac] [WordPress Trac] #16574: Lazy load ancestors

WordPress Trac wp-trac at lists.automattic.com
Wed Feb 16 15:32:49 UTC 2011

#16574: Lazy load ancestors
 Reporter:  nacin                |       Owner:
     Type:  enhancement          |      Status:  new
 Priority:  normal               |   Milestone:  Future Release
Component:  Performance          |     Version:
 Severity:  normal               |  Resolution:
 Keywords:  3.2-early has-patch  |

Comment (by filosofo):

 How about instead we deprecate the post object's `ancestors` property with
 a magic `__get` method, and then use a working `get_post_ancestors()`
 function to get the ancestors in core WP?

 That way, we maintain backwards-compatibility for those who are
 referencing the `ancestors` post property in plugins, but we are explicit
 about actually querying the post ancestors, in core (and as recommended

 Resource-intensive queries like that should be as explicit as possible,
 for code readability and debugging purposes. Hiding the query in a magic
 `__get` method is slightly slower, and it makes it harder to identify the
 conditions in which such queries will occur.

 In other words, as a band-aid to handle deprecated properties, it's fine,
 but let's not make it standard practice, particularly for retrieving
 external resources (database records) as opposed to e.g. internal object
 properties, which I think was the intent of `__get`.

Ticket URL: <http://core.trac.wordpress.org/ticket/16574#comment:6>
WordPress Trac <http://core.trac.wordpress.org/>
WordPress blogging software

More information about the wp-trac mailing list