Add a filter to wp_safe_redirect() for the fallback URL.

Props anubisthejackle. Fixes #22612

Built from https://develop.svn.wordpress.org/trunk@32793


git-svn-id: http://core.svn.wordpress.org/trunk@32764 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
Dion Hulse 2015-06-16 05:26:26 +00:00
parent 66c1d75c1c
commit 2b2368d68f
2 changed files with 11 additions and 3 deletions

View File

@ -1260,7 +1260,7 @@ if ( !function_exists('wp_safe_redirect') ) :
* path. A plugin can therefore set or remove allowed host(s) to or from the * path. A plugin can therefore set or remove allowed host(s) to or from the
* list. * list.
* *
* If the host is not allowed, then the redirect is to wp-admin on the siteurl * 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, * instead. This prevents malicious redirects which redirect to another host,
* but only used in a few places. * but only used in a few places.
* *
@ -1271,7 +1271,15 @@ function wp_safe_redirect($location, $status = 302) {
// Need to look at the URL the way it will end up in wp_redirect() // Need to look at the URL the way it will end up in wp_redirect()
$location = wp_sanitize_redirect($location); $location = wp_sanitize_redirect($location);
$location = wp_validate_redirect($location, admin_url()); /**
* Filter the redirect fallback URL for when the provided redirect is not safe (local).
*
* @since 4.3.0
*
* @param string $fallback_url The fallback URL to use by default.
* @param int $status The redirect status.
*/
$location = wp_validate_redirect( $location, apply_filters( 'wp_safe_redirect_fallback', admin_url(), $status ) );
wp_redirect($location, $status); wp_redirect($location, $status);
} }

View File

@ -4,7 +4,7 @@
* *
* @global string $wp_version * @global string $wp_version
*/ */
$wp_version = '4.3-alpha-32792'; $wp_version = '4.3-alpha-32793';
/** /**
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema. * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.