WP_Metadata_Lazyloader::lazyload_meta_callback()publicWP 6.3.0

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.

Method of the class: WP_Metadata_Lazyloader{}

No Hooks.

Return

Mixed. In order not to short-circuit get_metadata(). Generally, this is null, but it could be another value if filtered by a plugin.

Usage

$WP_Metadata_Lazyloader = new WP_Metadata_Lazyloader();
$WP_Metadata_Lazyloader->lazyload_meta_callback( $check, $object_id, $meta_key, $single, $meta_type );
$check(mixed) (required)
The $check param passed from the 'get_*_metadata' hook.
$object_id(int) (required)
ID of the object metadata is for.
$meta_key(string) (required)
Unused.
$single(true|false) (required)
Unused.
$meta_type(string) (required)
Type of object metadata is for. Accepts 'post', 'comment', 'term', 'user', or any other object type with an associated meta table.

Changelog

Since 6.3.0 Introduced.

WP_Metadata_Lazyloader::lazyload_meta_callback() code WP 6.8

public function lazyload_meta_callback( $check, $object_id, $meta_key, $single, $meta_type ) {
	if ( empty( $this->pending_objects[ $meta_type ] ) ) {
		return $check;
	}

	$object_ids = array_keys( $this->pending_objects[ $meta_type ] );
	if ( $object_id && ! in_array( $object_id, $object_ids, true ) ) {
		$object_ids[] = $object_id;
	}

	update_meta_cache( $meta_type, $object_ids );

	// No need to run again for this set of objects.
	$this->reset_queue( $meta_type );

	return $check;
}