The ms_allowed_http_request_hosts() WordPress PHP function adds any domain in a multisite installation for safe HTTP requests to the allowed list.
Usage
ms_allowed_http_request_hosts($is_external, $host);
Parameters
$is_external
(bool): Indicates whether the request is external or not.$host
(string): The domain/host for which you want to allow safe HTTP requests.
More information
See WordPress Developer Resources: ms_allowed_http_request_hosts
Examples
Allow an external host for HTTP requests
// Allow example.com as an external host add_filter('http_request_host_is_external', 'allow_example_host', 10, 2); function allow_example_host($is_external, $host) { if ('example.com' === $host) { return true; } return $is_external; }
Allow multiple external hosts for HTTP requests
// Allow example.com and example2.com as external hosts add_filter('http_request_host_is_external', 'allow_multiple_hosts', 10, 2); function allow_multiple_hosts($is_external, $host) { $allowed_hosts = ['example.com', 'example2.com']; if (in_array($host, $allowed_hosts)) { return true; } return $is_external; }
Allow a subdomain in a multisite installation
// Allow sub.example.com as an external host in a multisite installation add_filter('http_request_host_is_external', 'allow_subdomain_host', 10, 2); function allow_subdomain_host($is_external, $host) { if ('sub.example.com' === $host) { return true; } return $is_external; }
Allow all subdomains of a specific domain
// Allow all subdomains of example.com add_filter('http_request_host_is_external', 'allow_all_subdomains', 10, 2); function allow_all_subdomains($is_external, $host) { if (preg_match('/(.*)\.example\.com/', $host)) { return true; } return $is_external; }
Conditionally allow external hosts based on the current user’s role
// Allow example.com for users with the 'editor' role add_filter('http_request_host_is_external', 'allow_host_based_on_user_role', 10, 2); function allow_host_based_on_user_role($is_external, $host) { $current_user = wp_get_current_user(); if (in_array('editor', $current_user->roles) && 'example.com' === $host) { return true; } return $is_external; }