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
*/
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'";
}
@ -220,10 +224,19 @@ class WP_Scripts extends WP_Dependencies {
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";
// CDATA is not needed for HTML 5.
if ( $this->type_attr ) {
echo "/* <![CDATA[ */\n";
}
echo "$output\n";
if ( $this->type_attr ) {
echo "/* ]]> */\n";
}
echo "</script>\n";
return true;

View File

@ -117,7 +117,11 @@ class WP_Styles extends WP_Dependencies {
* @since 2.6.0
*/
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'";
}