mirror of
https://github.com/gosticks/wordpress-develop.git
synced 2026-08-11 20:30:23 +00:00
Script Loader: Introduce HTML5 support for scripts and styles.
When a theme declares HTML5 support for script and styles via `add_theme_support( 'html5', array( 'script', 'style' ) )`, the `type="text/javascript"` and `type="text/css"` attributes are omitted. These attributes are unnecessary in HTML5 and cause warnings in the W3C Markup Validation Service. Props sasiddiqui, swissspidy, knutsp, SergeyBiryukov. See #42804. git-svn-id: https://develop.svn.wordpress.org/trunk@46164 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
@@ -100,6 +100,17 @@ class WP_Styles extends WP_Dependencies {
|
||||
*/
|
||||
public $default_dirs;
|
||||
|
||||
/**
|
||||
* Holds a string which contains the type attribute for style tag.
|
||||
*
|
||||
* If the current theme does not declare HTML5 support for 'style',
|
||||
* then it initializes as `type='text/css'`.
|
||||
*
|
||||
* @since 5.3.0
|
||||
* @var string
|
||||
*/
|
||||
private $type_attr = '';
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
@@ -114,6 +125,10 @@ class WP_Styles extends WP_Dependencies {
|
||||
* @param WP_Styles $this WP_Styles instance (passed by reference).
|
||||
*/
|
||||
do_action_ref_array( 'wp_default_styles', array( &$this ) );
|
||||
|
||||
if ( ! current_theme_supports( 'html5', 'style' ) ) {
|
||||
$this->type_attr = " type='text/css'";
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -156,7 +171,12 @@ class WP_Styles extends WP_Dependencies {
|
||||
$inline_style = $this->print_inline_style( $handle, false );
|
||||
|
||||
if ( $inline_style ) {
|
||||
$inline_style_tag = sprintf( "<style id='%s-inline-css' type='text/css'>\n%s\n</style>\n", esc_attr( $handle ), $inline_style );
|
||||
$inline_style_tag = sprintf(
|
||||
"<style id='%s-inline-css'%s>\n%s\n</style>\n",
|
||||
esc_attr( $handle ),
|
||||
$this->type_attr,
|
||||
$inline_style
|
||||
);
|
||||
} else {
|
||||
$inline_style_tag = '';
|
||||
}
|
||||
@@ -197,9 +217,17 @@ class WP_Styles extends WP_Dependencies {
|
||||
}
|
||||
|
||||
$rel = isset( $obj->extra['alt'] ) && $obj->extra['alt'] ? 'alternate stylesheet' : 'stylesheet';
|
||||
$title = isset( $obj->extra['title'] ) ? "title='" . esc_attr( $obj->extra['title'] ) . "'" : '';
|
||||
$title = isset( $obj->extra['title'] ) ? sprintf( "title='%s'", esc_attr( $obj->extra['title'] ) ) : '';
|
||||
|
||||
$tag = "<link rel='$rel' id='$handle-css' $title href='$href' type='text/css' media='$media' />\n";
|
||||
$tag = sprintf(
|
||||
"<link rel='%s' id='%s-css' %s href='%s'%s media='%s' />\n",
|
||||
$rel,
|
||||
$handle,
|
||||
$title,
|
||||
$href,
|
||||
$this->type_attr,
|
||||
$media
|
||||
);
|
||||
|
||||
/**
|
||||
* Filters the HTML link tag of an enqueued style.
|
||||
@@ -223,7 +251,16 @@ class WP_Styles extends WP_Dependencies {
|
||||
$rtl_href = $this->_css_href( $obj->extra['rtl'], $ver, "$handle-rtl" );
|
||||
}
|
||||
|
||||
$rtl_tag = "<link rel='$rel' id='$handle-rtl-css' $title href='$rtl_href' type='text/css' media='$media' />\n";
|
||||
$rtl_tag = sprintf(
|
||||
"<link rel='%s' id='%s-rtl-css' %s href='%s'%s media='%s' />\n",
|
||||
$rel,
|
||||
$handle,
|
||||
$title,
|
||||
$rtl_href,
|
||||
$this->type_attr,
|
||||
$media
|
||||
);
|
||||
|
||||
/** This filter is documented in wp-includes/class.wp-styles.php */
|
||||
$rtl_tag = apply_filters( 'style_loader_tag', $rtl_tag, $handle, $rtl_href, $media );
|
||||
|
||||
@@ -298,7 +335,12 @@ class WP_Styles extends WP_Dependencies {
|
||||
return $output;
|
||||
}
|
||||
|
||||
printf( "<style id='%s-inline-css' type='text/css'>\n%s\n</style>\n", esc_attr( $handle ), $output );
|
||||
printf(
|
||||
"<style id='%s-inline-css'%s>\n%s\n</style>\n",
|
||||
esc_attr( $handle ),
|
||||
$this->type_attr,
|
||||
$output
|
||||
);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user