WP_Metadata_Lazyloader::lazyload_meta_callback( mixed $check, int $object_id, string $meta_key, bool $single, string $meta_type ): mixed

Lazy-loads meta for queued objects.

Description

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.

Parameters

$checkmixedrequired
The $check param passed from the 'get_*_metadata' hook.
$object_idintrequired
ID of the object metadata is for.
$meta_keystringrequired
Unused.
$singleboolrequired
Unused.
$meta_typestringrequired
Type of object metadata is for. Accepts 'post', 'comment', 'term', 'user', or any other object type with an associated meta table.

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.

Source

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;
}

Changelog

VersionDescription
6.3.0Introduced.

User Contributed Notes

You must log in before being able to contribute a note or feedback.