_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. Default false.

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.