Heim > Fragen und Antworten > Hauptteil
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 verwendenget_theme_file_uri(glob('/dist/styles/main*.css'), __FILE__)
Aber gibt null zurück
P粉8850351142024-04-04 10:35:14
我想你必须在不同的文件夹中检查自己,灵感来自 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__) ); } } );