The redirect_this_site() WordPress PHP function ensures that the current site’s domain is listed in the allowed redirect host list.
Usage
$allowed_redirect_hosts = redirect_this_site();
Parameters
- $deprecated (array|string, Optional) – Not used. Default: ”
More information
See WordPress Developer Resources: redirect_this_site
Examples
Adding the current site to the allowed redirect hosts
Add the current site’s domain to the allowed redirect hosts list and filter it before using it in a custom redirect function.
// Get the allowed redirect hosts $allowed_redirect_hosts = redirect_this_site(); // Use the allowed redirect hosts in a custom redirect function function custom_redirect($location) { global $allowed_redirect_hosts; if (in_array(parse_url($location, PHP_URL_HOST), $allowed_redirect_hosts)) { wp_redirect($location); exit; } }
Allowing specific additional domains for redirect
Add custom domains to the allowed redirect host list using the ‘allowed_redirect_hosts’ filter.
add_filter('allowed_redirect_hosts', 'my_custom_allowed_redirect_hosts', 10, 1); function my_custom_allowed_redirect_hosts($allowed_hosts) { $allowed_hosts[] = 'example.com'; $allowed_hosts[] = 'example2.com'; return $allowed_hosts; }
Checking if a redirect URL is valid before redirecting
Use the wp_validate_redirect() function to check if the redirect URL is valid before redirecting.
$redirect_url = 'https://example.com/some-page/'; $valid_redirect_url = wp_validate_redirect($redirect_url, false); if ($valid_redirect_url) { wp_redirect($valid_redirect_url); exit; }
Allowing subdomains of the current site for redirect
Add all subdomains of the current site to the allowed redirect host list.
add_filter('allowed_redirect_hosts', 'my_custom_allowed_subdomains', 10, 1); function my_custom_allowed_subdomains($allowed_hosts) { $site_domain = parse_url(get_site_url(), PHP_URL_HOST); $subdomains = array('sub1', 'sub2', 'sub3'); foreach ($subdomains as $subdomain) { $allowed_hosts[] = $subdomain . '.' . $site_domain; } return $allowed_hosts; }
Redirecting to a custom URL if the redirect URL is not in the allowed hosts list
Redirect to a custom URL if the given redirect URL is not part of the allowed redirect host list.
$redirect_url = 'https://example.com/some-page/'; $valid_redirect_url = wp_validate_redirect($redirect_url, false); if ($valid_redirect_url) { wp_redirect($valid_redirect_url); } else { wp_redirect(home_url()); } exit;