WordPress : is_page_template() ne fonctionne pas dans functions.php
J’ai donc un script que j’aimerais inclure uniquement dans un fichier de modèle. Le fichier de modèle se trouve dans un dossier appelé modèles dans mon thème enfant. J’ai pensé que je pouvais le faire en incluant une instruction if dans functions.php et en ciblant le fichier de modèle par son nom comme suit :
function header_anim() {
wp_enqueue_script( 'head', get_stylesheet_directory_uri() . '/js/head.js' );
}
if( is_page_template( '/templates/home-template.php' )) {
add_action( 'wp_enqueue_scripts', 'header_anim' );
}
Cependant, il semble qu’il ne reconnaisse pas l’instruction if pour une raison quelconque.
Solution n°1 trouvée
Hmmm, que diriez-vous de cela. Essayons de faire le conditionnement un peu différemment… Avez-vous une autre fonction qui charge un autre script pour le reste de vos modèles/pages ? Si c’est le cas, nous pouvons les combiner en une seule fonction, et j’espère que cela fonctionnera …
function equeue_scripts_header () {
if( is_page_template( '/templates/home-template.php' )){
wp_enqueue_script( 'head', get_stylesheet_directory_uri() . '/js/head.js' );
}
else {
/*call enqueue script for that corresponds to the rest of the site */
}
}
add_action( 'wp_enqueue_scripts', 'equeue_scripts_header' );
J’espère que je n’ai pas simplement ajouté une autre itération que vous avez déjà essayée. Faites-moi savoir comment celui-ci fonctionne…
Solution n°2 trouvée
Comment ça va? Une chose que j’ai faite avec mes feuilles de style pourrait éventuellement fonctionner avec ce script. Structure l’instruction if dans la fonction qui appelle le wp_enqueue_script et utilise la condition if not than return. Par exemple:
function header_anim() {
if( !is_page_template( '/templates/home-template.php' )){
return;
}
wp_enqueue_script( 'head', get_stylesheet_directory_uri() . '/js/head.js' );
}
add_action( 'wp_enqueue_scripts', 'header_anim' );
Laissez-moi savoir si cela fonctionne pour vous….
Plus tard, Jus
0 commentaire