wp_enqueue脚本库依赖关系


wp_enqueue script library dependancies

我有一个6个库的列表,我想加载到我的wordpress插件/主题中。目前,它们都是这样添加到主题的标题中的。

<script type="text/javascript" src="/wp-content/themes/mytheme/js/jquery.wijmo-open.1.2.0.min.js"></script>

我正在构建一个插件,它有自己的脚本,依赖于这些库。我想按照我提出的这个解决方案运行,看看它是否符合wordpress标准。我需要将主题中的脚本排队,以便在插件中引用它们。

在主题标题中,我将所有<script src>更改为<? wp_enqueue_script(); ?>

wp_enqueue_script( 'my-jquery', 'https://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js' );
wp_enqueue_script( 'my-jquery-ui-core', 'https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.12/jquery-ui.min.js' );
wp_enqueue_script( 'raphael', '/wp-content/themes/mytheme/js/external/raphael.js', array('wijmo-jquery','wijmo-jquery-ui-core'));
wp_enqueue_script( 'jquery-glob', '/wp-content/themes/mytheme/js/external/jquery.glob.min.js', array('wijmo-jquery','wijmo-jquery-ui-core'));
wp_enqueue_script( 'jquery-bgiframe', '/wp-content/themes/mytheme/js/external/jquery.bgiframe-2.1.3-pre.js', array('wijmo-jquery','wijmo-jquery-ui-core'));
wp_enqueue_script( 'jquery-mousewheel', '/wp-content/themes/mytheme/js/external/jquery.mousewheel.min.js', array('wijmo-jquery','wijmo-jquery-ui-core'));
wp_enqueue_script( 'wijmo-open', '/wp-content/themes/mytheme/js/jquery.wijmo-open.1.2.0.min.js', array('wijmo-jquery','wijmo-jquery-ui-core','raphael','jquery-glob','jquery-bgiframe'));

在插件中,我现在可以引用我的插件js-dependences jquery glob、jquery bgiframe和wijmo-open。

wp_enqueue_script( 'wee_broim_download_form', WP_PLUGIN_URL . '/wee-broim-download-form/js/script.js', array('jquery','jquery-ui-core','raphael','jquery-glob','jquery-bgiframe','jquery-mousewheel','wijmo-open','wijmo-complete'));

我知道wordpress有一些内置的库,我可以使用functions.php来指向jquery、jquery ui cdn等,但只需重命名它们(我的jquery、我的jquery ui(就可以了。我只是觉得我逐渐添加依赖关系的方式有点混乱。我希望有一种方法可以对我的插件说,好吧,你最后加载了。

您不需要显式命名js文件所依赖的所有库。例如:

如果库A依赖于B,并且您希望在这2个之后加载C,则只需要C依赖于A,并且由于A依赖于B,所以C将最后加载。

在你的例子中,你可以做

wp_enqueue_script( 'wee_broim_download_form', WP_PLUGIN_URL . '/wee-broim-download-form/js/script.js', array('jquery-bgiframe','jquery-mousewheel','wijmo-open','wijmo-complete'));

由于wijmo_open依赖于您拥有的其余库。