Rumah  >  Soal Jawab  >  teks badan

Dapatkan fail dari laluan yang ditentukan berdasarkan padanan nama fail separa

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粉194919082P粉194919082222 hari yang lalu485

membalas semua(1)saya akan balas

  • P粉885035114

    P粉8850351142024-04-04 10:35:14

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

    balas
    0
  • Batalbalas