Par souci d'efficacité, nous essayons de ne lier certains scripts JS qu'à un certain modèle de page d'un thème destiné à contenir un formulaire: page-with-form.php
Sur le thème functions.php, nous avons défini init_method en tant que tel:
function my_init_method(){
$dir = get_bloginfo('stylesheet_directory')."/js/jquery.js";
wp_deregister_script('jquery');
wp_register_script('jquery',$dir);
wp_enqueue_script('jquery');
$dir = get_bloginfo('stylesheet_directory')."/js/jquery.validate.min.js";
wp_deregister_script('jquery.validate.min');
wp_register_script('jquery.validate',$dir);
wp_enqueue_script('jquery.validate.min');
$dir = get_bloginfo('stylesheet_directory')."/js/funcion.js";
wp_deregister_script('funcion');
wp_register_script('funcion',$dir);
wp_enqueue_script('funcion');
}
Nous nous attendions alors à ce que nous puissions ajouter à la première ligne du modèle de page page-with-form.php (avant get_header ()):
add_action('init', 'my_init_method');
Modification du code en fonction des réponses: Sur le modèle de page, chargez la fonction directement, pas besoin de add_action ("init" ...
my_init_method();
...
get_header();
init
est beaucoup plus ancien que le chargement du modèle de page et n'est pas l'endroit approprié pour les files d'attente (malgré de nombreux tutoriels et documents l'utilisant pour cela).
Décrochez votre fonction à wp_enqueue_scripts
et assurez-vous que vous le faites avant l'appel du modèle wp_head()
.
Lorsque vous avez chargé votre fichier de modèle, vous avez déjà passé le hook 'template_redirect'
, ce qui est trop tardif (voir: Plugin/Référence de l'API Action ).
Vous devez définir l'appel add_action
dans votre fichier functions.php, chargé avant le hook after_setup_theme
- qui est le premier hook disponible pour les thèmes.
En plus d'utiliser le bon hook (comme indiqué par @Rarst), vous devrez déplacer votre code fonctionnel vers functions.php
et envelopper le contenu de la fonction dans une condition if ( is_page( 'page-with-form' ) )
.