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

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.
return: void|WP_Error WP_Error on failure.

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

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

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.

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

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.

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

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.

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',
return: mixed In order not to short-circuit `get_metadata()`. Generally, this is `null`, but it could be



Generated : Thu Nov 21 08:20:01 2024 Cross-referenced by PHPXref