問題描述

  • 我一直在閱讀這個問題,但是我讀的越多 – 我越感到困惑。

  • 有人可以簡單的向我解釋一下 wp_enqueue_scriptswp_register_scriptswp_print_scripts 有什麼區別?

  • 例如,我的 functions.php 中有以下程式碼 – 它的工作原理,但我不明白為什麼我不能使用 wp_print_scripts 的樣式表,而程式碼仍然可以使用 wp_enqueue_scripts 的 javascript 檔案:

    add_action('wp_print_scripts', 'add_my_js');
    function add_my_js(){
        if(!is_admin()){
            wp_enqueue_script('default',  get_bloginfo('stylesheet_directory').'/js/default.js', array('jquery'));
        }
    }
    
    add_action('wp_enqueue_scripts', 'add_my_stylesheet');
    function add_my_stylesheet() {
        wp_register_style('default', get_bloginfo( 'stylesheet_url'));
        wp_enqueue_style( 'default');
    }
    

最佳解決方案

wp_print_scripts 是指令碼輸出到模板時執行的操作。 wp_register_scriptwp_enqueue_script 是在 wp_print_scripts 執行時註冊/排隊指令碼輸出的功能。

您不能在 wp_print_scripts 動作鉤子中註冊或排入樣式,因為樣式已經在 wp_print_scripts 之前執行的 wp_print_styles 鉤子中輸出。

請參閱 action reference 以檢視請求中執行的順序:

22. wp_head
23. wp_enqueue_scripts
24. wp_print_styles
25. wp_print_scripts

參考文獻

注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。