wp_enqueue_scripts, wp_register_scripts, wp_print_scripts: estou confuso


8
  • Tenho lido um pouco sobre esse assunto, mas quanto mais leio, mais confuso fico.

  • Alguém pode me explicar em resumo qual é a diferença exata entre wp_enqueue_scripts, wp_register_scriptse wp_print_scripts?

  • Por exemplo, tenho o seguinte código em minhas funções.php - e está funcionando, mas não entendo por que não posso usar wp_print_scriptspara as folhas de estilo, enquanto o código ainda funciona se eu usar wp_enqueue_scriptspara os arquivos 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');
    }

Respostas:


9

wp_print_scriptsé a ação executada quando os scripts são enviados para o modelo. wp_register_scripte wp_enqueue_scriptsão funções para registrar / enfileirar scripts a serem produzidos quando wp_print_scriptsexecutados.

você não pode registrar ou enfileirar estilos no wp_print_scriptsgancho de ação, porque os estilos já foram produzidos no wp_print_stylesgancho, que é executado anteriormente wp_print_scripts.

consulte a referência de ação para ver a ordem em que as coisas são executadas em uma solicitação:

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

Então, qual é a diferença entre wp_enqueue_script e wp_register_script?
Jeff K.

3
wp_register_script registra o script no WordPress, mas não o adiciona à fila. Se você também não chamar wp_enqueue_script, o script não aparecerá. O objetivo disso é permitir que você registre seu script uma vez e depois o enfileire condicionalmente em outro lugar do seu código. Isso é útil para desenvolvedores de plug-ins nos quais um script pode ser enfileirado em vários locais no código. Você também pode enfileirar seu script diretamente, sem registrá-lo.
Milo
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.