[ Index ]

PHP Cross Reference of WordPress Trunk (Updated Daily)

Search

title

Body

[close]

/wp-includes/ -> class-wp-metadata-lazyloader.php (summary)

Meta API: WP_Metadata_Lazyloader class

File Size: 200 lines (7 kb)
Included or required: 1 time
Referenced: 0 times
Includes or requires: 0 files

Defines 1 class

WP_Metadata_Lazyloader:: (6 methods):
  __construct()
  queue_objects()
  reset_queue()
  lazyload_term_meta()
  lazyload_comment_meta()
  lazyload_meta_callback()


Class: WP_Metadata_Lazyloader  - X-Ref

Core class used for lazy-loading object metadata.

When loading many objects of a given type, such as posts in a WP_Query loop, it often makes
sense to prime various metadata caches at the beginning of the loop. This means fetching all
relevant metadata with a single database query, a technique that has the potential to improve
performance dramatically in some cases.

In cases where the given metadata may not even be used in the loop, we can improve performance
even more by only priming the metadata cache for affected items the first time a piece of metadata
is requested - ie, by lazy-loading it. So, for example, comment meta may not be loaded into the
cache in the comments section of a post until the first time get_comment_meta() is called in the
context of the comment loop.

WP uses the WP_Metadata_Lazyloader class to queue objects for metadata cache priming. The class
then detects the relevant get_*_meta() function call, and queries the metadata of all queued objects.

Do not access this class directly. Use the wp_metadata_lazyloader() function.

__construct()   X-Ref
Constructor.


queue_objects( $object_type, $object_ids )   X-Ref
Adds objects to the metadata lazy-load queue.

return: void|WP_Error WP_Error on failure.
param: string $object_type Type of object whose meta is to be lazy-loaded. Accepts 'term' or 'comment'.
param: array  $object_ids  Array of object IDs.

reset_queue( $object_type )   X-Ref
Resets lazy-load queue for a given object type.

return: void|WP_Error WP_Error on failure.
param: string $object_type Object type. Accepts 'comment' or 'term'.

lazyload_term_meta( $check )   X-Ref
Lazy-loads term meta for queued terms.

This method is public so that it can be used as a filter callback. As a rule, there
is no need to invoke it directly.

return: mixed In order not to short-circuit `get_metadata()`. Generally, this is `null`, but it could be
param: mixed $check The `$check` param passed from the 'get_term_metadata' hook.

lazyload_comment_meta( $check )   X-Ref
Lazy-loads comment meta for queued comments.

This method is public so that it can be used as a filter callback. As a rule, there is no need to invoke it
directly, from either inside or outside the `WP_Query` object.

return: mixed The original value of `$check`, so as not to short-circuit `get_comment_metadata()`.
param: mixed $check The `$check` param passed from the {@see 'get_comment_metadata'} hook.

lazyload_meta_callback( $check, $object_id, $meta_key, $single, $meta_type )   X-Ref
Lazy-loads meta for queued objects.

This method is public so that it can be used as a filter callback. As a rule, there
is no need to invoke it directly.

return: mixed In order not to short-circuit `get_metadata()`. Generally, this is `null`, but it could be
param: mixed  $check     The `$check` param passed from the 'get_*_metadata' hook.
param: int    $object_id ID of the object metadata is for.
param: string $meta_key  Unused.
param: bool   $single    Unused.
param: string $meta_type Type of object metadata is for. Accepts 'post', 'comment', 'term', 'user',



Generated : Thu Apr 25 08:20:02 2024 Cross-referenced by PHPXref