Make WordPress Core

Changeset 35354


Ignore:
Timestamp:
10/22/2015 04:37:31 PM (11 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.