Script Loader: Add function_exists() checks for is_admin() and current_theme_supports(), to accomodate for using WP_Dependencies as a standalone class.

Remove `<![CDATA[` when outputting HTML5 script tags. 

Props azaozz.
Fixes #42804.

git-svn-id: https://develop.svn.wordpress.org/trunk@46287 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Sergey Biryukov 2019-09-24 02:55:56 +00:00
parent 31f33fb209
commit f8688bb43b
2 changed files with 22 additions and 5 deletions

View File

@ -149,7 +149,11 @@ class WP_Scripts extends WP_Dependencies {
* @since 3.4.0 * @since 3.4.0
*/ */
public function init() { public function init() {
if ( ! is_admin() && ! current_theme_supports( 'html5', 'script' ) ) { if (
function_exists( 'is_admin' ) && ! is_admin()
&&
function_exists( 'current_theme_supports' ) && ! current_theme_supports( 'html5', 'script' )
) {
$this->type_attr = " type='text/javascript'"; $this->type_attr = " type='text/javascript'";
} }
@ -220,10 +224,19 @@ class WP_Scripts extends WP_Dependencies {
return $output; return $output;
} }
echo "<script{$this->type_attr}>\n"; // CDATA and type="text/javascript" is not needed for HTML 5. echo "<script{$this->type_attr}>\n";
echo "/* <![CDATA[ */\n";
// CDATA is not needed for HTML 5.
if ( $this->type_attr ) {
echo "/* <![CDATA[ */\n";
}
echo "$output\n"; echo "$output\n";
echo "/* ]]> */\n";
if ( $this->type_attr ) {
echo "/* ]]> */\n";
}
echo "</script>\n"; echo "</script>\n";
return true; return true;

View File

@ -117,7 +117,11 @@ class WP_Styles extends WP_Dependencies {
* @since 2.6.0 * @since 2.6.0
*/ */
public function __construct() { public function __construct() {
if ( ! is_admin() && ! current_theme_supports( 'html5', 'style' ) ) { if (
function_exists( 'is_admin' ) && ! is_admin()
&&
function_exists( 'current_theme_supports' ) && ! current_theme_supports( 'html5', 'style' )
) {
$this->type_attr = " type='text/css'"; $this->type_attr = " type='text/css'";
} }