wp_enqueue_scripts, wp_register_scripts, wp_print_scripts: je suis confus


8
  • J'ai lu un peu sur ce sujet, mais plus je lis - plus je suis confus.

  • Quelqu'un peut-il m'expliquer brièvement quelle est la différence exacte entre wp_enqueue_scripts, wp_register_scriptset wp_print_scripts?

  • Par exemple, j'ai le code suivant dans mon functions.php - et cela fonctionne, mais je ne comprends pas pourquoi je ne peux pas l'utiliser wp_print_scriptspour les feuilles de style, alors que le code fonctionne toujours si j'utilise wp_enqueue_scriptspour les fichiers 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');
    }
    

Réponses:


9

wp_print_scriptsest l'action qui s'exécute lorsque les scripts sont sortis dans le modèle. wp_register_scriptet wp_enqueue_scriptsont des fonctions d'enregistrement / de mise en file d'attente des scripts à afficher lors de l' wp_print_scriptsexécution.

vous ne pouvez pas enregistrer ou mettre en file d'attente les styles dans le wp_print_scriptscrochet d'action car les styles ont déjà été sortis dans le wp_print_stylescrochet, qui s'exécute auparavant wp_print_scripts.

reportez-vous à la référence d'action pour voir l'ordre dans lequel les choses sont exécutées dans une demande:

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

Alors, quelle est la différence entre wp_enqueue_script et wp_register_script?
Jeff K.

3
wp_register_script enregistre le script avec WordPress, mais ne l'ajoute pas à la file d'attente. Si vous n'appelez pas également wp_enqueue_script, le script n'apparaîtra pas. Le but de ceci est de vous permettre d'enregistrer votre script une fois, puis de le mettre en file d'attente conditionnellement ailleurs dans votre code. Ceci est utile pour les développeurs de plugins où un script peut être mis en file d'attente à plusieurs endroits dans le code. Vous pouvez également simplement mettre votre script en file d'attente directement sans l'enregistrer.
Milo
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.