[wp-trac] [WordPress Trac] #54772: Verufy via wp_remote_get() if the website supports HTTP/2

WordPress Trac noreply at wordpress.org
Sun Jan 9 20:03:21 UTC 2022

#54772: Verufy via wp_remote_get() if the website supports HTTP/2
 Reporter:  gabelivan    |      Owner:  (none)
     Type:  enhancement  |     Status:  new
 Priority:  normal       |  Milestone:  Awaiting Review
Component:  General      |    Version:
 Severity:  normal       |   Keywords:
  Focuses:               |
 Hello, guys!

 I want to use WordPress to verify whether a website (any URL I specify)
 has HTTP/2 support. It looks like I need to use custom PHP code with cURL
 instead of the WordPress functions. Here's an example:

 $ch = curl_init();

 $curlParams = array(
     CURLOPT_URL            => get_site_url(),
     CURLOPT_HEADER         => true,
     CURLOPT_NOBODY         => true,

 if (defined('CURLOPT_HTTP_VERSION') && defined('CURL_HTTP_VERSION_2_0')) {

 curl_setopt_array($ch, $curlParams);

 $response = curl_exec($ch);

 if (! $response) {
    echo curl_error($ch);

 if (strpos($response, 'HTTP/2') === 0) {
    $result['has_http2'] = '1'; // Has HTTP/2 Support

 When checking ''/wp-includes/class-wp-http-curl.php'', it looks like
 there's no way to add my own option and value to curl_setopt() via
 wp_remote_get(). The CURLOPT_HTTP_VERSION option is hardcoded like this:

 if ( '1.0' === $parsed_args['httpversion'] ) {
     curl_setopt( $handle, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0 );
 } else {
     curl_setopt( $handle, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1 );

 Any ideas? I want to stick with the WordPress functions as much as
 possible instead of creating custom solutions.

Ticket URL: <https://core.trac.wordpress.org/ticket/54772>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform

More information about the wp-trac mailing list