wp_enqueue_scripts, wp_register_scripts, wp_print_scripts: estoy confundido

8
  • He estado leyendo un poco sobre este tema, pero cuanto más leo, más me confundo.

  • ¿Puede alguien que me explique en pocas palabras cuál es la diferencia exacta entre wp_enqueue_scripts, wp_register_scriptsy wp_print_scripts?

  • Por ejemplo, tengo el siguiente código en mis functions.php, y está funcionando, pero no entiendo por qué no puedo usarlo wp_print_scriptspara las hojas de estilo, mientras que el código aún funciona si lo uso wp_enqueue_scriptspara los archivos 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');
    }
    
ptriek
fuente

Respuestas:

9

wp_print_scriptses la acción que se ejecuta cuando los scripts se envían a la plantilla. wp_register_scripty wp_enqueue_scriptson funciones para registrar / poner en cola los scripts que se generarán cuando se wp_print_scriptsejecuten.

no puede registrar o poner en cola estilos en el wp_print_scriptsgancho de acción porque los estilos ya se han generado en el wp_print_stylesgancho, que se ejecuta antes wp_print_scripts.

consulte la referencia de acción para ver el orden en que se ejecutan las cosas en una solicitud:

22. wp_head
23. wp_enqueue_scripts
24. wp_print_styles
25. wp_print_scripts
Milo
fuente
Entonces, ¿cuál es la diferencia entre wp_enqueue_script y wp_register_script?
Jeff K.
3
wp_register_script registra el script con WordPress, pero no lo agrega a la cola. Si tampoco llama a wp_enqueue_script, el script no aparecerá. El propósito de esto es permitirle registrar su script una vez, y luego ponerlo en cola condicionalmente en otro lugar de su código. Esto es útil para los desarrolladores de complementos donde un script se puede poner en cola en varios lugares dentro del código. También puede poner en cola su script directamente sin registrarlo.
Milo