I'm having this code:
wp_register_script('parent','parent.js', array('child'), '1', true);
wp_register_script('child', 'child.js', array('grandchild'), '1', true);
wp_register_script('grandchild', 'grandchild.js', array(), '1', true);
wp_enqueue_script('parent');
and it works fine, rendering grandchild.js
, then child.js
, then parent.js
in footer.
Every combination of just parent and child works fine, regardless of TRUE or FALSE 'render in footer'. But when I register 'child' to be rendered in head instead:
wp_register_script('parent','parent.js', array('child'), '1', true);
wp_register_script('child', 'child.js', array('grandchild'), '1', FALSE);
wp_register_script('grandchild', 'grandchild.js', array(), '1', true);
wp_enqueue_script('parent');
Then child.js
gets rendered in head, parent.js
gets rendered in footer, and grandchild.js
is not rendered at all ! Even though there is obviously a dependency for it.
Looks like a bug to me. Am I missing something? Shouldn't it work?
Thanks!