WordPress Version: 5.9
/**
* Redirects to previous page.
*
* @since 2.7.0
*
* @param int $post_id Optional. Post ID.
*/
function redirect_post($post_id = '')
{
if (isset($_POST['save']) || isset($_POST['publish'])) {
$status = get_post_status($post_id);
if (isset($_POST['publish'])) {
switch ($status) {
case 'pending':
$message = 8;
break;
case 'future':
$message = 9;
break;
default:
$message = 6;
}
} else {
$message = ('draft' === $status) ? 10 : 1;
}
$location = add_query_arg('message', $message, get_edit_post_link($post_id, 'url'));
} elseif (isset($_POST['addmeta']) && $_POST['addmeta']) {
$location = add_query_arg('message', 2, wp_get_referer());
$location = explode('#', $location);
$location = $location[0] . '#postcustom';
} elseif (isset($_POST['deletemeta']) && $_POST['deletemeta']) {
$location = add_query_arg('message', 3, wp_get_referer());
$location = explode('#', $location);
$location = $location[0] . '#postcustom';
} else {
$location = add_query_arg('message', 4, get_edit_post_link($post_id, 'url'));
}
/**
* Filters the post redirect destination URL.
*
* @since 2.9.0
*
* @param string $location The destination URL.
* @param int $post_id The post ID.
*/
wp_redirect(apply_filters('redirect_post_location', $location, $post_id));
exit;
}