web-dev-qa-db-fra.com

Utilisation de wp_localize_script dans la page de modèle pour transférer une variable var de php vers js

Je cherchais une aide sur le forum, mais rien ne correspond vraiment à mon problème.

J'essaie en fait d'utiliser bxSlider avec Wordpress. Mon problème est que lorsque je crée mon image de galerie (une page modèle dans un thème enfant), je dois passer les URL de l'image que j'ai obtenues dynamiquement de la page précédente au fichier js pour créer mon image de galerie avec l'option proposée par bxslider. (En particulier avec vignette )

Pour passer des variables de php à js, j'utilise normalement wp_localize_script dans function.php ou un plugin, mais pas une page de modèle. Et dans ce cas, je ne peux même pas mettre mon script en file d'attente.

Comment puis-je passer des variables d'une page de modèle à un fichier javascript avec une variable dynamique (impossible pour moi de passer par function.php)

Merci de votre aide !

1
jardindeden

Je l'ai finalement résolu! :)

Le problème était que j'ajoutais ma fonction pour localiser et mettre en file d'attente mon script à la fin de la page avec la fonction elle-même, après la boucle wordpress. J'ai donc finalement ajouté la fonction avant d'obtenir l'en-tête et cette fois, je peux passer des variables normalement.

( J'enregistre déjà mon script dans function.php )

Code avant (faux):

[...Code...]
function pass_var_to_js() {
    global $my_variable;
    wp_localize_script('script_name','send_var', array( $my_variable ) );
    wp_enqueue_script('script_name');
}
add_action('wp_enqueue_scripts', 'pass_var_to_js');

Code après (à droite):

[...Code...]
add_action('wp_enqueue_scripts', 'pass_var_to_js');
get_header();
[...Code...]
function pass_var_to_js() {
    global $my_variable;
    wp_localize_script('script_name','send_var', array( $my_variable ) );
    wp_enqueue_script('script_name');
}

J'espère que cela pourra aider quelqu'un!

0
jardindeden