Script/Style Dependencies: Make sure that inline scripts for handles without a source are printed.
See [36550] for `WP_Styles`. Props bpayton. Fixes #44551. git-svn-id: https://develop.svn.wordpress.org/trunk@43565 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
parent
cbf8f438d7
commit
244f435e22
@ -271,6 +271,12 @@ class WP_Scripts extends WP_Dependencies {
|
|||||||
$after_handle = sprintf( "<script type='text/javascript'>\n%s\n</script>\n", $after_handle );
|
$after_handle = sprintf( "<script type='text/javascript'>\n%s\n</script>\n", $after_handle );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ( $before_handle || $after_handle ) {
|
||||||
|
$inline_script_tag = "{$cond_before}{$before_handle}{$after_handle}{$cond_after}";
|
||||||
|
} else {
|
||||||
|
$inline_script_tag = '';
|
||||||
|
}
|
||||||
|
|
||||||
if ( $this->do_concat ) {
|
if ( $this->do_concat ) {
|
||||||
/**
|
/**
|
||||||
* Filters the script loader source.
|
* Filters the script loader source.
|
||||||
@ -312,7 +318,15 @@ class WP_Scripts extends WP_Dependencies {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// A single item may alias a set of items, by having dependencies, but no source.
|
// A single item may alias a set of items, by having dependencies, but no source.
|
||||||
if ( ! $obj->src ) {
|
if ( ! $src ) {
|
||||||
|
if ( $inline_script_tag ) {
|
||||||
|
if ( $this->do_concat ) {
|
||||||
|
$this->print_html .= $inline_script_tag;
|
||||||
|
} else {
|
||||||
|
echo $inline_script_tag;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -405,6 +405,47 @@ class Tests_Dependencies_Scripts extends WP_UnitTestCase {
|
|||||||
$this->assertEquals( $expected, get_echo( 'wp_print_scripts' ) );
|
$this->assertEquals( $expected, get_echo( 'wp_print_scripts' ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ticket 44551
|
||||||
|
*/
|
||||||
|
function test_wp_add_inline_script_before_for_handle_without_source() {
|
||||||
|
wp_register_script( 'test-example', '' );
|
||||||
|
wp_enqueue_script( 'test-example' );
|
||||||
|
wp_add_inline_script( 'test-example', 'console.log("before");', 'before' );
|
||||||
|
|
||||||
|
$expected = "<script type='text/javascript'>\nconsole.log(\"before\");\n</script>\n";
|
||||||
|
|
||||||
|
$this->assertEquals( $expected, get_echo( 'wp_print_scripts' ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ticket 44551
|
||||||
|
*/
|
||||||
|
function test_wp_add_inline_script_after_for_handle_without_source() {
|
||||||
|
wp_register_script( 'test-example', '' );
|
||||||
|
wp_enqueue_script( 'test-example' );
|
||||||
|
wp_add_inline_script( 'test-example', 'console.log("after");' );
|
||||||
|
|
||||||
|
$expected = "<script type='text/javascript'>\nconsole.log(\"after\");\n</script>\n";
|
||||||
|
|
||||||
|
$this->assertEquals( $expected, get_echo( 'wp_print_scripts' ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ticket 44551
|
||||||
|
*/
|
||||||
|
function test_wp_add_inline_script_before_and_after_for_handle_without_source() {
|
||||||
|
wp_register_script( 'test-example', '' );
|
||||||
|
wp_enqueue_script( 'test-example' );
|
||||||
|
wp_add_inline_script( 'test-example', 'console.log("before");', 'before' );
|
||||||
|
wp_add_inline_script( 'test-example', 'console.log("after");' );
|
||||||
|
|
||||||
|
$expected = "<script type='text/javascript'>\nconsole.log(\"before\");\n</script>\n";
|
||||||
|
$expected .= "<script type='text/javascript'>\nconsole.log(\"after\");\n</script>\n";
|
||||||
|
|
||||||
|
$this->assertEquals( $expected, get_echo( 'wp_print_scripts' ) );
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ticket 14853
|
* @ticket 14853
|
||||||
*/
|
*/
|
||||||
|
Loading…
Reference in New Issue
Block a user