diff --git src/wp-includes/class-wp-scripts.php src/wp-includes/class-wp-scripts.php
index a6a283f953..612ac7d06f 100644
|
|
class WP_Scripts extends WP_Dependencies { |
281 | 281 | $intended_strategy = ''; |
282 | 282 | } |
283 | 283 | |
| 284 | // If the script is in the header group, current output is the header, the intended strategy is `defer`, the |
| 285 | // actual strategy is not defer and all dependent scripts are in the footer - move this script to the footer. |
| 286 | if ( 'defer' === $intended_strategy && 'defer' !== $strategy && 0 === $this->groups[ $handle ] && 0 === $group ) { |
| 287 | // Check that all depedencies are in the footer. |
| 288 | $all_deps_in_footer = true; |
| 289 | foreach ( $this->get_dependents( $handle ) as $dep ) { |
| 290 | if ( isset( $this->groups[ $dep ] ) && 1 !== $this->groups[ $dep ] ) { |
| 291 | $all_deps_in_footer = false; |
| 292 | break; |
| 293 | } |
| 294 | } |
| 295 | if ( $all_deps_in_footer ) { |
| 296 | $this->in_footer[] = $handle; |
| 297 | $this->groups[ $handle ] = 1; |
| 298 | return; |
| 299 | } |
| 300 | } |
| 301 | |
284 | 302 | if ( $conditional ) { |
285 | 303 | $cond_before = "<!--[if {$conditional}]>\n"; |
286 | 304 | $cond_after = "<![endif]-->\n"; |