wp_untrash_post_status filter-hookWP 5.6.0

Filters the status that a post gets assigned when it is restored from the trash (untrashed).

By default posts that are restored will be assigned a status of 'draft'. Return the value of $previous_status in order to assign the status that the post had before it was trashed. The wp_untrash_post_set_previous_status() is available for this.

Prior to WordPress 5.6.0, restored posts were always assigned their original status.

Usage

add_filter( 'wp_untrash_post_status', 'wp_kama_untrash_post_status_filter', 10, 3 );

/**
 * Function for `wp_untrash_post_status` filter-hook.
 * 
 * @param string $new_status      The new status of the post being restored.
 * @param int    $post_id         The ID of the post being restored.
 * @param string $previous_status The status of the post at the point where it was trashed.
 *
 * @return string
 */
function wp_kama_untrash_post_status_filter( $new_status, $post_id, $previous_status ){

	// filter...
	return $new_status;
}
$new_status(string)
The new status of the post being restored.
$post_id(int)
The ID of the post being restored.
$previous_status(string)
The status of the post at the point where it was trashed.

Changelog

Since 5.6.0 Introduced.

Where the hook is called

wp_untrash_post()
wp_untrash_post_status
wp-includes/post.php 3857
$post_status = apply_filters( 'wp_untrash_post_status', $new_status, $post_id, $previous_status );

Where the hook is used in WordPress

wp-admin/edit.php 151
add_filter( 'wp_untrash_post_status', 'wp_untrash_post_set_previous_status', 10, 3 );
wp-admin/edit.php 167
remove_filter( 'wp_untrash_post_status', 'wp_untrash_post_set_previous_status', 10 );