Make WordPress Core

Changeset 35354


Ignore:
Timestamp:
10/22/2015 04:37:31 PM (10 years ago)
Author:
wonderboymusic
Message:

oEmbed: if SimpleXMLElement does not exist, return an HTTP Error 501 Not implemented response.

Props swissspidy.
Fixes #34274.

Location:
trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/class-wp-oembed-controller.php

    r34904 r35354  
    143143     */
    144144    public function xml_response( $data ) {
     145        if ( ! class_exists( 'SimpleXMLElement' ) ) {
     146            status_header( 501 );
     147            return get_status_header_desc( 501 );
     148        }
     149
    145150        $result = _oembed_create_xml( $data );
    146151
     
    148153        if ( ! $result ) {
    149154            status_header( 501 );
    150             return 'Not implemented';
     155            return get_status_header_desc( 501 );
    151156        }
    152157
  • trunk/src/wp-includes/embed-functions.php

    r35253 r35354  
    352352    if ( is_singular() ) {
    353353        $output .= '<link rel="alternate" type="application/json+oembed" href="' . esc_url( get_oembed_endpoint_url( get_permalink() ) ) . '" />' . "\n";
    354         $output .= '<link rel="alternate" type="text/xml+oembed" href="' . esc_url( get_oembed_endpoint_url( get_permalink(), 'xml' ) ) . '" />' . "\n";
     354
     355        if ( class_exists( 'SimpleXMLElement' ) ) {
     356            $output .= '<link rel="alternate" type="text/xml+oembed" href="' . esc_url( get_oembed_endpoint_url( get_permalink(), 'xml' ) ) . '" />' . "\n";
     357        }
    355358    }
    356359
  • trunk/tests/phpunit/tests/oembed/controller.php

    r35242 r35354  
    165165        $legacy_controller = new WP_oEmbed_Controller();
    166166
    167         $this->assertEquals( 'Not implemented',  $legacy_controller->xml_response( null ) );
    168         $this->assertEquals( 'Not implemented',  $legacy_controller->xml_response( 123 ) );
    169         $this->assertEquals( 'Not implemented',  $legacy_controller->xml_response( array() ) );
     167        $this->assertEquals( get_status_header_desc( 501 ),  $legacy_controller->xml_response( null ) );
     168        $this->assertEquals( get_status_header_desc( 501 ),  $legacy_controller->xml_response( 123 ) );
     169        $this->assertEquals( get_status_header_desc( 501 ),  $legacy_controller->xml_response( array() ) );
    170170    }
    171171
Note: See TracChangeset for help on using the changeset viewer.