Récupère les fichiers à partir du chemin spécifié en fonction d'une correspondance partielle du nom de fichier
P粉194919082
P粉194919082 2024-04-03 14:50:46
0
1
450

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粉194919082
P粉194919082

répondre à tous(1)
P粉885035114

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__) );
    }
} );
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!