Frage

Ich stelle mehrere Skripte in meinen Themenfunktionen an.php:

if ( ! function_exists('b99_init_scripts') ) :
    function b99_init_scripts(){

        if ( !is_admin()){
            wp_deregister_script('jquery');
            wp_register_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js', false, null, false);
            wp_enqueue_script('jquery');

        wp_register_script('B99', get_template_directory_uri().'/javascript/site/B99.js', array('jquery'), null, false);
            wp_enqueue_script('B99');

        wp_register_script('B99-Nav', get_template_directory_uri().'/javascript/site/module/B99.Navigation.js', array('B99'), null, false );
        wp_enqueue_script('B99-Nav');

            if ( is_page('portfolio') || is_front_page() ){
                wp_register_script('B99-Portfolio', get_template_directory_uri().'/javascript/site/module/B99.Portfolio.js', array('B99-Nav'), null, false);
                wp_enqueue_script('B99-Portfolio');
            } // fails if add_action is set to 'init'

            if ( is_singular() && get_option( 'thread_comments' ) ){
                wp_enqueue_script( 'comment-reply' );
            }
        }
    }
    endif;
    add_action( 'wp_enqueue_scripts', 'b99_init_scripts' );

Ich habe gelesen, dass der richtige Ort für add_action "init" ist

add_action( 'init', 'b99_init_scripts' );

Allerdings mein is_page('xxx') Überprüft alle fehlen während der Init.

Codiert, wie ich oben eingefügt habe:

add_action( 'wp_enqueue_script', 'b99_init_scripts' );

Funktioniert wie erwartet und die Seitenüberprüfungen funktionieren normal, aber ich glaube nicht, dass ich während der Routine wp_enqueue_scripts die Deregisteration, Registrierung und Enqueueing sein sollte.

Gibt es einen besseren Ort, an den ich mich anschließt, oder kann ich meine Seitenprüfung während der Init zum richtigen Funktionieren ändern (ich gehe davon aus, dass die Seite nicht funktioniert, da die erforderlichen Abfragen noch nicht abgefeuert wurden).

War es hilfreich?

Lösung

Ich würde vorschlagen, eine Funktion namens zu erstellen b99_register_scripts() und hängen Sie dies an init. Dann können Sie eine andere Funktion namens erstellen b99_enqueue_scripts() und hängen Sie es an in wp_print_scripts.

Andere Tipps

wp_enqueue_scripts ist in Ordnung, wenn es für Sie funktioniert. oder wp_print_scripts ist auch eine Option.

der Punkt von wp_register_script ist so, dass Sie etwas überall in Ihrem Code registrieren können, wenn Sie mehrere potenzielle Abhängigkeiten haben, und dann nur einmal an der richtigen Stelle auftreten. Wenn Sie alles an einem Ort tun, können Sie es einfach überspringen, wenn Sie es registrieren und einfach gleichzeitig aufnehmen, die Ergebnisse sind gleich.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit wordpress.stackexchange
scroll top