問題描述

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

  • 有人可以簡單的向我解釋一下 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 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。