The metadata_lazyloader_queued_objects WordPress action fires after objects are added to the metadata lazy-load queue.
Usage
add_action('metadata_lazyloader_queued_objects', 'my_custom_function', 10, 3); function my_custom_function($object_ids, $object_type, $lazyloader) { // Your custom code here }
Parameters
- $object_ids (array) – Array of object IDs.
- $object_type (string) – Type of object being queued.
- $lazyloader (WP_Metadata_Lazyloader) – The lazy-loader object.
More information
See WordPress Developer Resources: metadata_lazyloader_queued_objects
Examples
Log queued object IDs
Log the queued object IDs to a file.
add_action('metadata_lazyloader_queued_objects', 'log_queued_object_ids', 10, 3); function log_queued_object_ids($object_ids, $object_type, $lazyloader) { // Convert object IDs array to a string $ids_string = implode(', ', $object_ids); // Log to a file error_log("Queued Object IDs for {$object_type}: {$ids_string}"); }
Add custom metadata
Add custom metadata to queued objects.
add_action('metadata_lazyloader_queued_objects', 'add_custom_metadata', 10, 3); function add_custom_metadata($object_ids, $object_type, $lazyloader) { // Check if the object type is 'post' if ($object_type === 'post') { // Add custom metadata to each queued post foreach ($object_ids as $post_id) { add_post_meta($post_id, 'my_custom_meta_key', 'my_custom_meta_value'); } } }
Modify post titles
Modify post titles of queued objects.
add_action('metadata_lazyloader_queued_objects', 'modify_post_titles', 10, 3); function modify_post_titles($object_ids, $object_type, $lazyloader) { if ($object_type === 'post') { foreach ($object_ids as $post_id) { $post = get_post($post_id); $post->post_title = 'Modified: ' . $post->post_title; wp_update_post($post); } } }
Remove specific metadata
Remove a specific metadata from queued objects.
add_action('metadata_lazyloader_queued_objects', 'remove_specific_metadata', 10, 3); function remove_specific_metadata($object_ids, $object_type, $lazyloader) { if ($object_type === 'post') { foreach ($object_ids as $post_id) { delete_post_meta($post_id, 'unwanted_meta_key'); } } }
Count queued objects
Count the number of queued objects and store the result in an option.
add_action('metadata_lazyloader_queued_objects', 'count_queued_objects', 10, 3); function count_queued_objects($object_ids, $object_type, $lazyloader) { // Get the current count from the option $current_count = get_option('my_queued_object_count', 0); // Update the count $new_count = $current_count + count($object_ids); update_option('my_queued_object_count', $new_count); }