个性化阅读
专注于IT技术分析

如何使用wp_enqueue_script在foreach中更改顺序?

我为每个循环创建了一个, 用于在页脚中动态地从构建文件夹中加载所有脚本文件, 以用于开发和生产模式。这样, 我不需要手动替换脚本文件。

但是我有一个问题, 我不知道如何将文件的顺序更改为特定顺序。

应该是:运行时, 供应商, 主要。

这是我的PHP代码:

// First check if "JS" folder exist to prevent errors.
if(is_dir(THEME_DIR_ASSETS . '/js')) {
    // Enqueue all scripts.
    function nm_enqueue_scripts() {
    $directoryJS = new DirectoryIterator(THEME_DIR_ASSETS . '/js');

        wp_deregister_script('jquery');
        wp_enqueue_script('jquery', 'https://code.jquery.com/jquery-2.2.4.min.js', array(), null, false);

        foreach ($directoryJS as $file) {
            if (pathinfo($file, PATHINFO_EXTENSION) === 'js') {
            $fullName = basename($file);
            $name = substr(basename($fullName), 0, strpos(basename($fullName), '.'));

            wp_enqueue_script($name, THEME_DIR_JS . '/' . $fullName, $name, null, true);
            }
        }
    }
    add_action('wp_enqueue_scripts', 'nm_enqueue_scripts');
}

我怎样才能做到这一点?


#1


你将需要指定每个文件的依赖关系, 以便能够按所需顺序将它们加入队列。因此, 在$ directoryJS数据中, 你可以设置每个脚本的依赖关系, 使其看起来像这样:

$directoryJS = [
[
'script_name' => 'some-name' 
'script_url' => 'path to script', 'deps' => [ 'other-file-name']
], [
'script_name' => 'other-file-name' 
'script_url' => 'path to other script', 'deps' => [ ]
]
]

在foreach语句中, 入队脚本功能将如下所示:wp_enqueue_script($ script_name, THEME_DIR_JS。’/’。$ fullName, $ deps, ”, true);。

在这种情况下, WP将在” some-name”脚本之前加入” other-file-name”脚本。

赞(0)
未经允许不得转载:srcmini » 如何使用wp_enqueue_script在foreach中更改顺序?

评论 抢沙发

评论前必须登录!