Je ne comprends pas comment fonctionne la localisation de script dans Wordpress. J'ai créé un tableau associatif en php:
$translations = array(
'value1' =>'This is first value',
'value2' =>'This is second value'
);
J'ai créé un simple fichier javascript où je veux utiliser ce tableau:
jQuery(document).ready(function($){
alert(translations);
});
Ensuite, j'essaie de mettre en file d'attente et de localiser ce fichier javascript dans mon plugin comme ceci:
function kvkoolitus_load_comment_validation(){
wp_enqueue_script( 'simple-js', plugin_dir_url( __FILE__ ) . 'js/jquery.simple.js', array('jquery'), '', true );
wp_localize_script( 'simple-js', 'translations', $translations );
}
add_action( 'wp_enqueue_scripts', 'kvkoolitus_load_comment_validation' );
Mais lorsque je charge une page avec ce fichier javascript, alert me dit que l'objet 'translations' est null.
Qu'est-ce que j'ai raté?
Copier la réponse ici concernant la portée variable
Variables inside a function are only available inside that function.
Variables outside of functions are available anywhere outside of functions,
but not inside any function.
Pour cette raison, vous devez ajouter votre tableau $translations
dans la fonction kvkoolitus_load_comment_validation
, comme
function kvkoolitus_load_comment_validation(){
$translations = array(
'value1' =>'This is first value',
'value2' =>'This is second value'
);
wp_enqueue_script( 'simple-js', plugin_dir_url( __FILE__ ) . 'js/jquery.simple.js', array('jquery'), '', true );
wp_localize_script( 'simple-js', 'translations', $translations );
}
add_action( 'wp_enqueue_scripts', 'kvkoolitus_load_comment_validation' );