wp/wp-admin/load-scripts.php
changeset 16 a86126ab1dd4
parent 9 177826044cd9
child 19 3d72ae0968f4
equal deleted inserted replaced
15:3d4e9c994f10 16:a86126ab1dd4
     7  */
     7  */
     8 error_reporting( 0 );
     8 error_reporting( 0 );
     9 
     9 
    10 /** Set ABSPATH for execution */
    10 /** Set ABSPATH for execution */
    11 if ( ! defined( 'ABSPATH' ) ) {
    11 if ( ! defined( 'ABSPATH' ) ) {
    12 	define( 'ABSPATH', dirname( dirname( __FILE__ ) ) . '/' );
    12 	define( 'ABSPATH', dirname( __DIR__ ) . '/' );
    13 }
    13 }
    14 
    14 
    15 define( 'WPINC', 'wp-includes' );
    15 define( 'WPINC', 'wp-includes' );
    16 
    16 
       
    17 $protocol = $_SERVER['SERVER_PROTOCOL'];
       
    18 if ( ! in_array( $protocol, array( 'HTTP/1.1', 'HTTP/2', 'HTTP/2.0' ), true ) ) {
       
    19 	$protocol = 'HTTP/1.0';
       
    20 }
       
    21 
    17 $load = $_GET['load'];
    22 $load = $_GET['load'];
    18 if ( is_array( $load ) ) {
    23 if ( is_array( $load ) ) {
       
    24 	ksort( $load );
    19 	$load = implode( '', $load );
    25 	$load = implode( '', $load );
    20 }
    26 }
    21 
    27 
    22 $load = preg_replace( '/[^a-z0-9,_-]+/i', '', $load );
    28 $load = preg_replace( '/[^a-z0-9,_-]+/i', '', $load );
    23 $load = array_unique( explode( ',', $load ) );
    29 $load = array_unique( explode( ',', $load ) );
    24 
    30 
    25 if ( empty( $load ) ) {
    31 if ( empty( $load ) ) {
       
    32 	header( "$protocol 400 Bad Request" );
    26 	exit;
    33 	exit;
    27 }
    34 }
    28 
    35 
    29 require( ABSPATH . 'wp-admin/includes/noop.php' );
    36 require ABSPATH . 'wp-admin/includes/noop.php';
    30 require( ABSPATH . WPINC . '/script-loader.php' );
    37 require ABSPATH . WPINC . '/script-loader.php';
    31 require( ABSPATH . WPINC . '/version.php' );
    38 require ABSPATH . WPINC . '/version.php';
    32 
    39 
    33 $expires_offset = 31536000; // 1 year
    40 $expires_offset = 31536000; // 1 year.
    34 $out            = '';
    41 $out            = '';
    35 
    42 
    36 $wp_scripts = new WP_Scripts();
    43 $wp_scripts = new WP_Scripts();
    37 wp_default_scripts( $wp_scripts );
    44 wp_default_scripts( $wp_scripts );
    38 wp_default_packages_vendor( $wp_scripts );
    45 wp_default_packages_vendor( $wp_scripts );
    39 wp_default_packages_scripts( $wp_scripts );
    46 wp_default_packages_scripts( $wp_scripts );
    40 
    47 
    41 if ( isset( $_SERVER['HTTP_IF_NONE_MATCH'] ) && stripslashes( $_SERVER['HTTP_IF_NONE_MATCH'] ) === $wp_version ) {
    48 if ( isset( $_SERVER['HTTP_IF_NONE_MATCH'] ) && stripslashes( $_SERVER['HTTP_IF_NONE_MATCH'] ) === $wp_version ) {
    42 	$protocol = $_SERVER['SERVER_PROTOCOL'];
       
    43 	if ( ! in_array( $protocol, array( 'HTTP/1.1', 'HTTP/2', 'HTTP/2.0' ) ) ) {
       
    44 		$protocol = 'HTTP/1.0';
       
    45 	}
       
    46 	header( "$protocol 304 Not Modified" );
    49 	header( "$protocol 304 Not Modified" );
    47 	exit();
    50 	exit;
    48 }
    51 }
    49 
    52 
    50 foreach ( $load as $handle ) {
    53 foreach ( $load as $handle ) {
    51 	if ( ! array_key_exists( $handle, $wp_scripts->registered ) ) {
    54 	if ( ! array_key_exists( $handle, $wp_scripts->registered ) ) {
    52 		continue;
    55 		continue;