根据部分文件名匹配从指定路径获取文件
P粉194919082
P粉194919082 2024-04-03 14:50:46
0
1
510

我正在开发一个 WordPress,它利用 gulp 构建应用程序(scss、js)文件的前端。

在我的 functions.php 中,我使用 enqueue 来加载我的 css 和 js,以便它们可以在编辑器中使用。

add_action( 'enqueue_block_editor_assets', function() {
   wp_enqueue_style( 'editor-styling', get_theme_file_uri( '/dist/styles/main.css', __FILE__) );
   wp_enqueue_script( 'editor-scripts', get_theme_file_uri( '/dist/scripts/main.js', __FILE__) );

} );

运行一个简单的 gulp 命令我可以执行上述操作,因为该文件将被命名为 main.css。但是,我面临一个问题,当我使用 gulp --product 时,样式和 javascript 会带有随机值后缀。

例如,我的 main.scss 将(一旦我运行上述命令)变成 main-9acd4829.css

我的问题是,如何从文件名类似于 main<whatever>.css 的某个目录获取文件。

我尝试过使用诸如

之类的东西
get_theme_file_uri(glob('/dist/styles/main*.css'), __FILE__)

但是返回 null

P粉194919082
P粉194919082

全部回复(1)
P粉885035114

我想你必须在不同的文件夹中检查自己,灵感来自 get_theme_file_uri 的代码,类似这样的内容(请注意 glob 返回一个数组,而 get_theme_file_uri 接受一个字符串):

add_action( 'enqueue_block_editor_assets', function() {
    $style_file = glob(get_stylesheet_directory() . '/dist/styles/main*.css');
    if(!$style_file || !count($style_file)){
        $style_file = glob(get_template_directory_uri() . '/dist/styles/main*.css');
    }
    //NOTE: you can use foreach if your glob returns multiple files and this is what you want
    //NOTE2: in theory you could skip the use of get_theme_file_uri here because you already tested in which folder it is, this is just an example
    if($style_file && count($style_file)){
        wp_enqueue_style( 'editor-styling', get_theme_file_uri( '/dist/styles/' . $style_file[0], __FILE__) );
    }
    
    $script_file = glob(get_stylesheet_directory() . '/dist/scripts/main*.js');
    if(!$script_file || !count($script_file)){
        $script_file = glob(get_template_directory_uri() . '/dist/scripts/main*.js');
    }
    //NOTE: you can use foreach if your glob returns multiple files and this is what you want
    //NOTE2: in theory you could skip the use of get_theme_file_uri here because you already tested in which folder it is, this is just an example
    if($script_file && count($script_file)){
        wp_enqueue_script( 'editor-scripts', get_theme_file_uri( '/dist/scripts/' . $script_file[0], __FILE__) );
    }
} );
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板