wp_enqueue_scripts, wp_register_scripts, wp_print_scripts: Ich bin verwirrt

8
  • Ich habe ein bisschen über dieses Thema gelesen, aber je mehr ich lese, desto verwirrter werde ich.

  • Kann mir jemand kurz erklären , was der genaue Unterschied ist zwischen wp_enqueue_scripts, wp_register_scriptsund wp_print_scripts?

  • Zum Beispiel habe ich den folgenden Code in meiner functions.php - und er funktioniert, aber ich verstehe nicht, warum ich ihn nicht wp_print_scriptsfür die Stylesheets verwenden kann, während der Code immer noch funktioniert, wenn ich ihn wp_enqueue_scriptsfür die Javascript-Dateien verwende:

    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
quelle

Antworten:

9

wp_print_scriptsist die Aktion, die ausgeführt wird, wenn Skripte an die Vorlage ausgegeben werden. wp_register_scriptund wp_enqueue_scriptsind Funktionen zum Registrieren / Einreihen von Skripten, die beim Ausführen ausgegeben werden sollen wp_print_scripts.

Sie können nicht enqueue Stile im Register oder wp_print_scriptsAktion Haken , weil Arten bereits Ausgabe in der gewesen wp_print_stylesHaken, die vor läuft wp_print_scripts.

Beziehen Sie sich auf die Aktionsreferenz, um zu sehen, in welcher Reihenfolge Dinge in einer Anforderung ausgeführt werden:

22. wp_head
23. wp_enqueue_scripts
24. wp_print_styles
25. wp_print_scripts
Milo
quelle
Was ist dann der Unterschied zwischen wp_enqueue_script und wp_register_script?
Jeff K.
3
wp_register_script registriert das Skript bei WordPress, fügt es jedoch nicht der Warteschlange hinzu. Wenn Sie nicht auch wp_enqueue_script aufrufen, wird das Skript nicht angezeigt. Damit können Sie Ihr Skript einmal registrieren und später an einer anderen Stelle in Ihrem Code unter bestimmten Bedingungen in die Warteschlange stellen. Dies ist nützlich für Plugin-Entwickler, bei denen ein Skript an mehreren Stellen im Code in die Warteschlange gestellt werden kann. Sie können Ihr Skript auch direkt in die Warteschlange stellen, ohne es zu registrieren.
Milo