[wp-trac] [WordPress Trac] #63021: Lazy load user meta

WordPress Trac noreply at wordpress.org
Wed Feb 26 03:00:22 UTC 2025


#63021: Lazy load user meta
--------------------------+-----------------------------
 Reporter:  spacedmonkey  |      Owner:  (none)
     Type:  enhancement   |     Status:  new
 Priority:  normal        |  Milestone:  Awaiting Review
Component:  Users         |    Version:  4.4
 Severity:  normal        |   Keywords:
  Focuses:  performance   |
--------------------------+-----------------------------
 Break out ticket from #58001.

 WordPress already supports lazy loading for blog, comment, and term meta,
 significantly improving performance by reducing unnecessary database
 queries. However, user meta is still loaded immediately, which can lead to
 inefficiencies, especially on sites with large user bases or extensive
 user meta data.

 Proposal:

 This ticket proposes introducing a new wp_lazyload_user_meta() function to
 facilitate lazy loading of user meta. This function will be used within:
         •       cache_users() to defer loading user meta until it’s
 explicitly requested.
         •       The WP_User_Query class to optimise user queries and
 prevent unnecessary meta data retrieval.

 Benefits:
         •       Reduces the number of unnecessary database queries.
         •       Improves performance, particularly for sites with many
 users.
         •       Aligns user meta handling with existing lazy-loaded
 metadata (blogs, comments, terms).
         •       Enhances consistency and efficiency across WordPress meta
 data handling.

 Implementation Considerations:
         •       wp_lazyload_user_meta( array $user_ids ) will preload user
 meta into cache but defer its retrieval until explicitly accessed.
         •       Ensure backward compatibility by preserving expected
 behaviour for get_user_meta().
         •       Modify cache_users() and WP_User_Query to use
 wp_lazyload_user_meta() instead of immediately fetching meta.
         •       Evaluate and address potential edge cases, such as bulk
 user queries and caching mechanisms.


 Follow on from #58185 #57801, #57496 #57645

-- 
Ticket URL: <https://core.trac.wordpress.org/ticket/63021>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform


More information about the wp-trac mailing list