wp_http_supports

The timeline below displays how wordpress function wp_http_supports has changed across different WordPress versions. If a version is not listed, refer to the next available version below.

WordPress Version: 6.3

/**
 * Determines if there is an HTTP Transport that can process this request.
 *
 * @since 3.2.0
 *
 * @param array  $capabilities Array of capabilities to test or a wp_remote_request() $args array.
 * @param string $url          Optional. If given, will check if the URL requires SSL and adds
 *                             that requirement to the capabilities array.
 *
 * @return bool
 */
function wp_http_supports($capabilities = array(), $url = null)
{
    $http = _wp_http_get_object();
    $capabilities = wp_parse_args($capabilities);
    $count = count($capabilities);
    // If we have a numeric $capabilities array, spoof a wp_remote_request() associative $args array.
    if ($count && count(array_filter(array_keys($capabilities), 'is_numeric')) === $count) {
        $capabilities = array_combine(array_values($capabilities), array_fill(0, $count, true));
    }
    if ($url && !isset($capabilities['ssl'])) {
        $scheme = parse_url($url, PHP_URL_SCHEME);
        if ('https' === $scheme || 'ssl' === $scheme) {
            $capabilities['ssl'] = true;
        }
    }
    return (bool) $http->_get_first_available_transport($capabilities);
}

WordPress Version: 5.5

/**
 * Determines if there is an HTTP Transport that can process this request.
 *
 * @since 3.2.0
 *
 * @param array  $capabilities Array of capabilities to test or a wp_remote_request() $args array.
 * @param string $url          Optional. If given, will check if the URL requires SSL and adds
 *                             that requirement to the capabilities array.
 *
 * @return bool
 */
function wp_http_supports($capabilities = array(), $url = null)
{
    $http = _wp_http_get_object();
    $capabilities = wp_parse_args($capabilities);
    $count = count($capabilities);
    // If we have a numeric $capabilities array, spoof a wp_remote_request() associative $args array.
    if ($count && count(array_filter(array_keys($capabilities), 'is_numeric')) == $count) {
        $capabilities = array_combine(array_values($capabilities), array_fill(0, $count, true));
    }
    if ($url && !isset($capabilities['ssl'])) {
        $scheme = parse_url($url, PHP_URL_SCHEME);
        if ('https' === $scheme || 'ssl' === $scheme) {
            $capabilities['ssl'] = true;
        }
    }
    return (bool) $http->_get_first_available_transport($capabilities);
}

WordPress Version: 5.4

/**
 * Determines if there is an HTTP Transport that can process this request.
 *
 * @since 3.2.0
 *
 * @param array  $capabilities Array of capabilities to test or a wp_remote_request() $args array.
 * @param string $url          Optional. If given, will check if the URL requires SSL and adds
 *                             that requirement to the capabilities array.
 *
 * @return bool
 */
function wp_http_supports($capabilities = array(), $url = null)
{
    $http = _wp_http_get_object();
    $capabilities = wp_parse_args($capabilities);
    $count = count($capabilities);
    // If we have a numeric $capabilities array, spoof a wp_remote_request() associative $args array.
    if ($count && count(array_filter(array_keys($capabilities), 'is_numeric')) == $count) {
        $capabilities = array_combine(array_values($capabilities), array_fill(0, $count, true));
    }
    if ($url && !isset($capabilities['ssl'])) {
        $scheme = parse_url($url, PHP_URL_SCHEME);
        if ('https' == $scheme || 'ssl' == $scheme) {
            $capabilities['ssl'] = true;
        }
    }
    return (bool) $http->_get_first_available_transport($capabilities);
}

WordPress Version: 4.3

/**
 * Determines if there is an HTTP Transport that can process this request.
 *
 * @since 3.2.0
 *
 * @param array  $capabilities Array of capabilities to test or a wp_remote_request() $args array.
 * @param string $url          Optional. If given, will check if the URL requires SSL and adds
 *                             that requirement to the capabilities array.
 *
 * @return bool
 */
function wp_http_supports($capabilities = array(), $url = null)
{
    $http = _wp_http_get_object();
    $capabilities = wp_parse_args($capabilities);
    $count = count($capabilities);
    // If we have a numeric $capabilities array, spoof a wp_remote_request() associative $args array
    if ($count && count(array_filter(array_keys($capabilities), 'is_numeric')) == $count) {
        $capabilities = array_combine(array_values($capabilities), array_fill(0, $count, true));
    }
    if ($url && !isset($capabilities['ssl'])) {
        $scheme = parse_url($url, PHP_URL_SCHEME);
        if ('https' == $scheme || 'ssl' == $scheme) {
            $capabilities['ssl'] = true;
        }
    }
    return (bool) $http->_get_first_available_transport($capabilities);
}

WordPress Version: 3.7

/**
 * Determines if there is an HTTP Transport that can process this request.
 *
 * @since 3.2.0
 *
 * @param array  $capabilities Array of capabilities to test or a wp_remote_request() $args array.
 * @param string $url Optional. If given, will check if the URL requires SSL and adds that requirement to the capabilities array.
 *
 * @return bool
 */
function wp_http_supports($capabilities = array(), $url = null)
{
    $objFetchSite = _wp_http_get_object();
    $capabilities = wp_parse_args($capabilities);
    $count = count($capabilities);
    // If we have a numeric $capabilities array, spoof a wp_remote_request() associative $args array
    if ($count && count(array_filter(array_keys($capabilities), 'is_numeric')) == $count) {
        $capabilities = array_combine(array_values($capabilities), array_fill(0, $count, true));
    }
    if ($url && !isset($capabilities['ssl'])) {
        $scheme = parse_url($url, PHP_URL_SCHEME);
        if ('https' == $scheme || 'ssl' == $scheme) {
            $capabilities['ssl'] = true;
        }
    }
    return (bool) $objFetchSite->_get_first_available_transport($capabilities);
}