web-dev-qa-db-ja.com

wp_enqueue_scripts、wp_register_scripts、wp_print_scripts:混乱しています

  • 私はこのテーマについて少し読んでいますが、読むほどに混乱が生じます。

  • 誰かが簡単にwp_enqueue_scriptswp_register_scripts、およびwp_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');
    }
    
8
ptriek

wp_print_scriptsは、スクリプトがテンプレートに出力されたときに実行されるアクションです。 wp_register_scriptおよびwp_enqueue_scriptは、wp_print_scriptsの実行時に出力されるスクリプトを登録/エンキューするための関数です。

wp_print_scriptsの前に実行されるwp_print_stylesフックでスタイルがすでに出力されているので、wp_print_scriptsアクションフックでスタイルを登録またはエンキューすることはできません。

アクションリファレンス を参照して、リクエスト内で物事が実行される順序を確認してください。

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