wake-up-neo.com

wp_enqueue_script mit Abhängigkeiten funktioniert nicht

Ich habe diesen 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');

und es funktioniert gut, Rendern von grandchild.js, dann child.js, dann parent.js in der Fußzeile.

Jede Kombination von nur Eltern und Kind funktioniert einwandfrei, unabhängig von WAHR oder FALSCH 'In Fußzeile rendern'. Aber wenn ich "Kind" registriere, um stattdessen in den Kopf gerendert zu werden:

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');

Dann wird child.js im Kopf gerendert, parent.js wird in der Fußzeile gerendert, und grandchild.js wird überhaupt nicht gerendert! Obwohl es offensichtlich eine Abhängigkeit dafür gibt.

Sieht für mich wie ein Käfer aus. Vermisse ich etwas? Sollte es nicht funktionieren?

Vielen Dank!

2
Dima Stefantsov

Dies ist ein Bug in Wordpress.

https://core.trac.wordpress.org/ticket/35873

Soweit ich sehen kann, kann dies derzeit mit https://core.trac.wordpress.org/attachment/ticket/35873/35873.3.patch behoben werden. Wenn Sie dies einige Zeit später lesen, ist dies der Fall wahrscheinlich wurde bereits für Ihre Wordpress-Version behoben.

Legen Sie als vorübergehende Problemumgehung übergeordnete Abhängigkeiten für Kind und Enkel fest. So geht grandchild.js nicht verloren:

wp_register_script('parent','parent.js', array('grandchild', 'child'), '1', true);
wp_register_script('child', 'child.js', array('grandchild'), '1', FALSE);
wp_register_script('grandchild', 'grandchild.js', array(), '1', true);
2
Dima Stefantsov