J'écris un plugin ( lien github ) qui permet à l'utilisateur de télécharger des fichiers dans les pages d'admin de wordpress.
Je rencontre toutefois un problème: j'ai créé un formulaire de téléchargement qui se poste essentiellement sur lui-même et charge le contenu du résultat via AJAX (jQuery) dans la page déjà chargée.
Le problème est que tout contenu renvoyé via l'URL d'une page d'administration a toujours le pied de page de la page qui lui est associé.
Comment puis-je retourner du contenu via un appel ajax sans ceux-ci?
Ce que vous voulez faire est de définir une fonction de rappel pour traiter votre demande et pour ce faire, vous devez vous connecter:
... où "(action)" est le nom de votre paramètre "action" qui doit être fourni dans votre demande AJAX (plus à ce sujet dans un instant).
Premièrement, définissez une fonction de rappel dans votre logique PHP, prenons l'exemple de unc_gallery_upload
.
Dans ce cas, "unc_gallery_upload" est le nom de votre action. Ainsi, lors de la définition de votre hook, vous combinez wp_ajax_
avec unc_gallery_upload
et vous obtenez wp_ajax_unc_gallery_upload
.
function unc_gallery_upload_handler() {
//handle request e.g. var_dump($_POST['data']);
}
add_action( 'wp_ajax_unc_gallery_upload', 'unc_gallery_upload_handler' );
Dans votre demande AJAX (code JS)
var options = {
//this will post to example.com/wp-admin/admin-ajax.php
//the ajaxurl variable is already defined in the global
//scope of the WordPress dashboard
url: ajaxurl,
//your payload, accessible on $_POST['data']
data: {
//this name of your action as defined in your wp_ajax_(action)
//hook that will fire your
action: 'unc_gallery_upload',
payload: 'somedata'
},
target: '#targetLayer',
beforeSubmit: beforeSubmit,
uploadProgress: uploadProgress,
resetForm: true,
complete: complete
};
$('#uploadForm').submit(function() {
$(this).ajaxSubmit(options);
return false;
});
Je recommande fortement de lire: wp_ajax_ (action)
Remarque: puisque vous êtes dans la zone d'administration, vous ne souhaitez PAS définir une wp_ajax_nopriv_(action)
.