The http_request_timeout WordPress PHP Filter allows you to modify the timeout value for an HTTP request.
Usage
add_filter('http_request_timeout', 'your_custom_function', 10, 2);
function your_custom_function($timeout_value, $url) {
// Your custom code here
return $timeout_value;
}
Parameters
$timeout_value(float): Time in seconds until a request times out. Default is 5.$url(string): The request URL.
More information
See WordPress Developer Resources: http_request_timeout
Examples
Increase the timeout value for a specific URL
Increase the timeout value to 10 seconds for requests made to example.com.
add_filter('http_request_timeout', 'increase_timeout_for_example', 10, 2);
function increase_timeout_for_example($timeout_value, $url) {
if (strpos($url, 'example.com') !== false) {
$timeout_value = 10;
}
return $timeout_value;
}
Decrease the timeout value for all requests
Decrease the timeout value to 3 seconds for all HTTP requests.
add_filter('http_request_timeout', 'decrease_timeout_globally', 10, 2);
function decrease_timeout_globally($timeout_value, $url) {
$timeout_value = 3;
return $timeout_value;
}
Set a different timeout for multiple URLs
Set different timeout values for requests made to example.com and example.org.
add_filter('http_request_timeout', 'set_different_timeouts', 10, 2);
function set_different_timeouts($timeout_value, $url) {
if (strpos($url, 'example.com') !== false) {
$timeout_value = 10;
} elseif (strpos($url, 'example.org') !== false) {
$timeout_value = 7;
}
return $timeout_value;
}
Increase the timeout value based on the request method
Increase the timeout value to 10 seconds for POST requests.
add_filter('http_request_timeout', 'increase_timeout_for_post_requests', 10, 2);
function increase_timeout_for_post_requests($timeout_value, $url) {
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$timeout_value = 10;
}
return $timeout_value;
}
Remove the timeout for a specific URL
Disable the timeout for requests made to no-timeout.example.com.
add_filter('http_request_timeout', 'remove_timeout_for_no_timeout_example', 10, 2);
function remove_timeout_for_no_timeout_example($timeout_value, $url) {
if (strpos($url, 'no-timeout.example.com') !== false) {
$timeout_value = 0;
}
return $timeout_value;
}