web-dev-qa-db-fra.com

Quelle est la "bonne" façon de générer une variable javascript en fonction d'une valeur de champ personnalisée?

J'ai quelques articles sur mon site avec un champ personnalisé "Nom". Maintenant, dans le cas où la publication a "Nom" défini, je veux générer ce code:

<script type='text/javascript'>
    var FG_DONATE_BUTTON_PARAMS = { attribution: 'honor',   attribution_name: Name}     
</script>

où Nom après nom_attribution fait référence à la valeur du champ personnalisé. À des fins de test, j'ai utilisé ce code dans l'en-tête

$nameAttribute= get_post_meta($post->ID, 'Name', true); 
printf('<script type=\'text/javascript\'>
var FG_DONATE_BUTTON_PARAMS = { 
    attribution: \'honor\', 
    attribution_name: \'' . $nameAttribute .'\'
} </script>');

Mais j'ai deux problèmes. Premièrement, la valeur de $ nameAttribute n'est pas transmise, et deuxièmement, c'est moche :) Je pense que je peux gérer le problème de la valeur, mais je ne sais pas quelle serait la "bonne" manière de générer cela.

1
Andrija

Vous voudrez peut-être examiner cette question . Dans cette question, l'URL admin-ajax est transmise, mais il peut s'agir de n'importe quelle variable (ou tableau de variables), comme par exemple $nameAttribute.

Par exemple, vous appelez

wp_localize_script('my_js_file_handle','my_js_object',array('attribute'=>$nameAttribute))` 

puis dans votre fichier js, la variable serait accessible à partir de my_js_object.attribute.

(Vous devez cependant mettre en file d'attente le fichier javascript!)

1
Stephen Harris