web-dev-qa-db-fra.com

wp_enqueue_scripts, wp_register_scripts, wp_print_scripts: je suis confus

  • 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_scripts et wp_print_scripts?

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

wp_print_scripts est l'action qui s'exécute lorsque les scripts sont sortis dans le modèle. wp_register_script et wp_enqueue_script sont des fonctions permettant d'enregistrer/mettre en file d'attente les scripts à générer lors de l'exécution de wp_print_scripts.

vous ne pouvez pas enregistrer ou mettre en file d'attente les styles dans le hook d'action wp_print_scripts car les styles ont déjà été affichés dans le hook wp_print_styles, qui s'exécute avant le wp_print_scripts.

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

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