使用Foreach循环将脚本入队是正确的方式吗?

时间:2017-07-27 作者:Owaiz Yusufi

使用foreach循环将脚本排队是一种正确的方法jquery, jquery-ui-widgeTjquery-UI-accordion, jquery-ui-slider, jquery-ui-tabs, jquery-ui-datepicker, Jquery-ui-dialogJquery-ui-button 因为我不得不写很多遍

我是这样做的:

 $jquery_ui = array(
    \'jquery\',
    \'jquery-ui-core\',
    \'jquery-ui-widget\',
    \'jquery-ui-accordion\',
    \'jquery-ui-slider\',
    \'jquery-ui-tabs\',
    \'jquery-ui-datepicker\',
    \'jquery-ui-dialog\',
    \'jquery-ui-button\',
 );

 // Framework JS
foreach ($jquery_ui as $ui) {
    wp_enqueue_script($ui);
}
所以我只想知道这种懒惰是不是一种正确的方式:)

2 个回复
最合适的回答,由SO网友:Johansson 整理而成

是的,你可以。但要确保脚本尚未注册或排队,请使用wp_script_is() 具体如下:

foreach( $jquery_ui as $ui ) {
    if( !wp_script_is( $ui ) ) {
        wp_enqueue_script( $ui );
    }
}
这将防止由于脚本的另一个实例已排队而导致的冲突。

SO网友:shea

事实上比这更容易。wp_enqueue_script() 接受脚本句柄数组,因此您只需执行以下操作:

$jquery_ui = array(
    \'jquery\',
    \'jquery-ui-core\',
    \'jquery-ui-widget\',
    \'jquery-ui-accordion\',
    \'jquery-ui-slider\',
    \'jquery-ui-tabs\',
    \'jquery-ui-datepicker\',
    \'jquery-ui-dialog\',
    \'jquery-ui-button\',
 );

wp_enqueue_script( $jquery_ui );
无需检查脚本是否已使用注册wp_script_is(), 像wp_enqueue_script() 为您处理此问题,并且永远不会将同一脚本(句柄)排队两次。通过调用wp_script_is() 此外,您不必要地执行了两次相同的检查。

结束

相关推荐