Dapatkan fail dari laluan yang ditentukan berdasarkan padanan nama fail separa
P粉194919082
P粉194919082 2024-04-03 14:50:46
0
1
568

Saya sedang membangunkan WordPress yang menggunakan tegukan untuk membina bahagian hadapan fail aplikasi (scss, js).

Dalam functions.php saya, saya menggunakan enqueue untuk memuatkan css dan js saya supaya ia boleh digunakan dalam editor.

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

} );

Apabila menjalankan gulp 命令我可以执行上述操作,因为该文件将被命名为 main.css。但是,我面临一个问题,当我使用 gulp --product ringkas, gaya dan javascript akan diakhiri dengan nilai rawak.

Sebagai contoh, main.scss saya akan (sebaik sahaja saya menjalankan arahan di atas) menjadi main-9acd4829.css.

Soalan saya ialah, bagaimana saya boleh mendapatkan fail daripada direktori tertentu dengan nama fail yang serupa dengan main<whatever>.css.

Saya telah mencuba menggunakan sesuatu seperti

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

Tetapi mengembalikan null

P粉194919082
P粉194919082

membalas semua(1)
P粉885035114

Saya rasa anda perlu menyemak diri anda dalam folder lain, diilhamkan oleh kod daripada get_theme_file_uri , sesuatu seperti ini (nota glob 返回一个数组,而 get_theme_file_uri menerima rentetan):

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__) );
    }
} );
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan