Je tire scripts.php à travers functions.php. c'est dans scripts.php mais pour une raison quelconque, wordpress ne reconnaît pas is_home (). J'ai essayé de réinitialiser la requête, mais en vain. Suis-je accroché à la bonne fonction?
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');
}
Au moment où functions.php est inclus lors du démarrage, WordPress n’a aucune idée du contenu de la requête et ne connaît pas la nature de la page. is_home
retournera false.
Enveloppez le code dans une fonction et faites-le déclencher par le crochet wp
, qui survient après l'hydratation de l'objet de requête globale avec des données.
add_action( 'wp', 'wpse47305_check_home' );
function wpse47305_check_home() {
if ( is_home() )
add_action( 'wp_enqueue_scripts', 'my_scripts' );
}
function my_scripts() {
...
}
L'action wp_enqueue_scripts
est exécutée après wp
.
http://codex.wordpress.org/Plugin_API/Action_Reference#Actions_Run_During_a_Typical_Request