Rufen Sie Dateien aus dem angegebenen Pfad basierend auf der teilweisen Dateinamenübereinstimmung ab
P粉194919082
P粉194919082 2024-04-03 14:50:46
0
1
573

Ich entwickle ein WordPress, das Gulp verwendet, um das Frontend der Anwendungsdateien (SCSS, JS) zu erstellen.

In meinem functions.php verwende ich Enqueue, um mein CSS und JS zu laden, damit sie im Editor verwendet werden können.

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

} );

Beim Ausführen eines einfachen gulp 命令我可以执行上述操作,因为该文件将被命名为 main.css。但是,我面临一个问题,当我使用 gulp --product werden Stile und Javascript mit zufälligen Werten angehängt.

Zum Beispiel wird meine main.scss (sobald ich den obigen Befehl ausführe) zu main-9acd4829.css.

Meine Frage ist, wie man aus einem bestimmten Verzeichnis eine Datei mit einem Dateinamen ähnlich main<whatever>.css erhält.

Ich habe versucht, so etwas wie

zu verwenden
get_theme_file_uri(glob('/dist/styles/main*.css'), __FILE__)

Aber gibt null zurück

P粉194919082
P粉194919082

Antworte allen(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__) );
    }
} );
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage