_wp_preview_meta_filter( mixed $value, int $object_id, string $meta_key, bool $single ): mixed

Filters preview post meta retrieval to get values from the autosave.

Description

Filters revisioned meta keys only.

Parameters

$valuemixedrequired
Meta value to filter.
$object_idintrequired
Object ID.
$meta_keystringrequired
Meta key to filter a value for.
$singleboolrequired
Whether to return a single value.

Return

mixed Original meta value if the meta key isn’t revisioned, the object doesn’t exist, the post type is a revision or the post ID doesn’t match the object ID.
Otherwise, the revisioned meta value is returned for the preview.

Source

function _wp_preview_meta_filter( $value, $object_id, $meta_key, $single ) {
	$post = get_post();

	if ( empty( $post )
		|| $post->ID !== $object_id
		|| ! in_array( $meta_key, wp_post_revision_meta_keys( $post->post_type ), true )
		|| 'revision' === $post->post_type
	) {
		return $value;
	}

	$preview = wp_get_post_autosave( $post->ID );

	if ( false === $preview ) {
		return $value;
	}

	return get_post_meta( $preview->ID, $meta_key, $single );
}

Changelog

VersionDescription
6.4.0Introduced.

User Contributed Notes

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