Dans mon plugin wordpress, j'ai besoin d'une option JSON pour charger, à l'aide de jquery, des informations sur un type de message personnalisé. Cet appel jquery viendra dans une page où tous les utilisateurs devraient le voir.Appel de la fonction json dans wordpress
pour autant que je comprends du codex je devrais avoir une fonction:
function my_json_returning_function(){
// get json objects here
echo $json;
die();
}
Outre les actions:
add_action('wp_ajax_my_json_action', 'my_json_returning_function');
add_action('wp_ajax_nopriv_my_json_action', 'my_json_returning_function');
Dans mon fichier plug-in.
alors quelque chose comme:
jQuery(document).ready(function($) {
var data = {
action: 'my_json_action',
};
// since 2.8 ajaxurl is always defined in the admin header and points to admin-ajax.php
jQuery.post(<?php echo admin_url('admin-ajax.php');?>, data, function(response) {
alert('Got this from the server: ' + response);
});
});
doit appeler la fonction en question. Ma vraie question est où je devrais placer toutes les différentes parties - et si quelque chose manque.
La fonction php et les actions hooks vont dans le fichier plugin. Mais le javascript, je suis plus confus. Je veux le mettre dans le fichier javascript plugin, mais puisque je dois aller chercher l'URL d'administration en utilisant php qui devient un problème.
Comment puis-je m'assurer que le script n'est appelé que si dans une certaine page? Y a-t-il plus de crochets et de filtres avec lesquels je devrais être à l'aise? Ou est-il possible de le charger en utilisant wp_enqueue_script lors de l'exécution d'un shortcode sur cette page, ou est-ce trop tard, car il me semble qu'il doit être chargé dans l'en-tête.
Beaucoup de questions, mais j'espère que vous comprenez la base de mon problème - j'ai du mal à placer le code aux bons endroits dans la structure wordpress.
EDIT: Appel echo admin_url ('admin-ajax.php'); n'est pas, au moins à mes yeux, la manière la plus élégante de le faire. Je préfère avoir une API json, avec son URL séparée, et l'appeler dans l'appel ajax. Comment pourrais-je configurer une page dans wordpress qui ne renvoie qu'un objet json?
Cette question [a été répondu sur le WordPress Stack Exchange] (http://wordpress.stackexchange.com/questions/3610/comment gérer-ajax-appelle-et-json-dans-wordpress). L'astuce est que vous pouvez utiliser 'wp_localize_script()' pour envoyer des valeurs de configuration PHP à Javascript. –