Performs a safe (local) redirect, using wp_redirect().
Description
Checks whether the $location is using an allowed host, if it has an absolute path. A plugin can therefore set or remove allowed host(s) to or from the list. If the host is not allowed, then the redirect defaults to wp-admin on the siteurl instead. This prevents malicious redirects which redirect to another host, but only used in a few places. Note: wp_safe_redirect() does not exit automatically, and should almost always be followed by a call to exit;: wp_safe_redirect( $url );
exit; Exiting can also be selectively manipulated by using wp_safe_redirect() as a conditional in conjunction with the 'wp_redirect' and 'wp_redirect_status' filters: if ( wp_safe_redirect( $url ) ) {
exit;
}
Parameters
$locationstring
The path or URL to redirect to.
$statusintoptional
HTTP response status code to use. Default '302' (Moved Temporarily).Default: 302
$x_redirect_bystring|falseoptional
The application doing the redirect or false to omit. Default 'WordPress'.Default: 'WordPress'
Return
bool
False if the redirect was canceled, true otherwise.
Hooks fired · 1
One hook fires while wp_safe_redirect() runs, in this order:
1543functionwp_safe_redirect($location,$status=302,$x_redirect_by='WordPress'){15441545// Need to look at the URL the way it will end up in wp_redirect().1546$location=wp_sanitize_redirect($location);15471548/**1549 * Filters the redirect fallback URL for when the provided redirect is not safe (local).1550 *1551 * @since 4.3.01552 *1553 * @param string $fallback_url The fallback URL to use by default.1554 * @param int $status The HTTP response status code to use.1555 */1556$fallback_url=apply_filters('wp_safe_redirect_fallback',admin_url(),$status);15571558$location=wp_validate_redirect($location,$fallback_url);15591560returnwp_redirect($location,$status,$x_redirect_by);1561}
History
Introduced in 2.3.0. Unchanged from 6.7.7 through 7.1.0.
Signature, return type and hooks compared across 5 parsed releases.
5.1.0
The return value from wp_redirect() is now passed on, and the $x_redirect_by parameter was added.from the docblock
2.3.0
Introduced.from the docblock
About this page
Parsed data
Generated from the wordpress-develop 6.8.8 tag, from src/wp-includes/pluggable.php, and regenerated for each WordPress release so it tracks the code rather than a snapshot of it.
Corrections
Something wrong on this page? Report it and it gets fixed in the next regeneration.