Maison > Questions et réponses > le corps du texte
Je développe un WordPress qui utilise gulp pour créer le frontend des fichiers de l'application (scss, js).
Dans mon functions.php
, j'utilise la mise en file d'attente pour charger mes CSS et JS afin qu'ils puissent être utilisés dans l'éditeur.
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__) ); } );
Lors de l'exécution d'un simple gulp
命令我可以执行上述操作,因为该文件将被命名为 main.css
。但是,我面临一个问题,当我使用 gulp --product
, les styles et javascript seront suffixés avec des valeurs aléatoires.
Par exemple, mon main.scss deviendra (une fois que j'aurai exécuté la commande ci-dessus) main-9acd4829.css
.
Ma question est la suivante : comment puis-je obtenir un fichier d'un certain répertoire avec un nom de fichier similaire à main<whatever>.css
.
J'ai essayé d'utiliser quelque chose comme
get_theme_file_uri(glob('/dist/styles/main*.css'), __FILE__)
Mais renvoie null
P粉8850351142024-04-04 10:35:14
Je pense que vous devez vous enregistrer dans un dossier différent, inspiré du code de get_theme_file_uri , quelque chose comme ceci (notez que glob
返回一个数组,而 get_theme_file_uri
accepte une chaîne) :
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__) ); } } );