带有依赖项的WP_enQueue_SCRIPT不工作

时间:2016-02-19 作者:Dima Stefantsov

我有以下代码:

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\');
而且效果很好,渲染grandchild.js, 然后child.js, 然后parent.js 在页脚中。

无论“在页脚中渲染”是真是假,仅父级和子级的每个组合都可以正常工作。但当我注册“child”以在head中呈现时:

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\');
那么child.js 在头部渲染,parent.js 在页脚中呈现,and grandchild.js is not rendered at all ! 尽管它显然有依赖性。

在我看来像个虫子。Am I missing something? Shouldn\'t it work?

谢谢

1 个回复
最合适的回答,由SO网友:Dima Stefantsov 整理而成

这是一个bug 在Wordpress中。

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

据我所知,目前可以用https://core.trac.wordpress.org/attachment/ticket/35873/35873.3.patch, 如果您稍后阅读此内容,它可能已经为您的Wordpress版本修复。

作为临时解决方法,请将父依赖项同时设置为子依赖项和孙依赖项。这边grandchild.js 不会迷路:

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

相关推荐

子主题中的WordPress|enQueue_SCRIPTS返回错误

我打算在孩子的主题中加载一个脚本,因为我想尝试一个特性。最初,我加载脚本如下:// loading menu toggle function function menu_toggle_enqueue_script() { wp_enqueue_script( \'menu-toggle\', get_template_directory_uri().\'/assets/js/menu.js\'); } add_action(\'wp_enqueue_scripts\