require(ABSPATH . '/wp-includes/version.php');
$load = preg_replace( '/[^a-z0-9,_-]+/i', '', $_GET['load'] );
-$load = explode(',', $load);
+$load = array_unique( explode( ',', $load ) );
if ( empty($load) )
exit;
$style = $wp_styles->registered[$handle];
$path = ABSPATH . $style->src;
- $content = get_file($path) . "\n";
-
- if ( $rtl && isset($style->extra['rtl']) && $style->extra['rtl'] ) {
- $rtl_path = is_bool($style->extra['rtl']) ? str_replace( '.min.css', '-rtl.min.css', $path ) : ABSPATH . $style->extra['rtl'];
- $content .= get_file($rtl_path) . "\n";
+ if ( $rtl && ! empty( $style->extra['rtl'] ) ) {
+ // All default styles have fully independent RTL files.
+ $path = str_replace( '.min.css', '-rtl.min.css', $path );
}
+ $content = get_file( $path ) . "\n";
+
if ( strpos( $style->src, '/wp-includes/css/' ) === 0 ) {
$content = str_replace( '../images/', '../wp-includes/images/', $content );
- $out .= str_replace( '../js/tinymce/', '../wp-includes/js/tinymce/', $content );
+ $content = str_replace( '../js/tinymce/', '../wp-includes/js/tinymce/', $content );
+ $content = str_replace( '../fonts/', '../wp-includes/fonts/', $content );
+ $out .= $content;
} else {
$out .= str_replace( '../images/', 'images/', $content );
}