it-swarm.com.de

warum funktioniert is_home () nicht in functions.php?

Ich ziehe scripts.php durch functions.php. Dies ist in scripts.php, aber aus irgendeinem Grund erkennt WordPress is_home () nicht. Ich habe versucht, die Abfrage zurückzusetzen, aber ohne Erfolg. Hänge ich an der richtigen Funktion?

if(is_home()){

function my_scripts_method2() {
    wp_register_script('cycle', get_template_directory_uri() . '/js/cycle.js', array('jquery'));
    wp_enqueue_script('cycle');
}
add_action('wp_enqueue_scripts', 'my_scripts_method2');

function my_scripts_method() {
    wp_register_script('homepage', get_template_directory_uri() . '/js/homepage.js', 'cycle');
    wp_enqueue_script('homepage');
}
add_action('wp_enqueue_scripts', 'my_scripts_method');
}
3
Kegan Quimby

Zum Zeitpunkt, zu dem functions.php beim Booten eingefügt wird, hat WordPress keine Ahnung vom Inhalt der Abfrage und kennt die Art der Seite nicht. is_home gibt false zurück.

Schließen Sie den Code in eine Funktion ein und lassen Sie ihn durch den Hook wp auslösen, der auftritt, nachdem das globale Abfrageobjekt mit Daten hydriert wurde.

add_action( 'wp', 'wpse47305_check_home' );
function wpse47305_check_home() {
    if ( is_home() )
        add_action( 'wp_enqueue_scripts', 'my_scripts' );
}

function my_scripts() {
    ...
}

Die Aktion wp_enqueue_scripts wird nach wp ausgeführt.

http://codex.wordpress.org/Plugin_API/Action_Reference#Actions_Run_During_a_Typical_Request

9
soulseekah