J'ai un plugin qui s'accroche au filtre "wp_handle_upload". Dans ce contexte, j'aimerais pouvoir identifier l'origine du téléchargement, ce qui signifie que je souhaite le traiter différemment s'il a été téléchargé depuis un message par rapport à la médiathèque par rapport à une page de paramètres de plugin/thème (par exemple, image d'en-tête pour un modèle).
La seule chose transmise à ma fonction est un tableau avec file, url, type. Y a-t-il un moyen d'identifier d'où il vient?
Je pourrais probablement créer une exception et examiner la trace de pile, est-ce une solution décente? Si oui, que pourrais-je rechercher dans la pile?
Merci!
J'ai été capable de comprendre en regardant les paramètres de formulaire, ce que je n'aime pas vraiment faire car cela ne fait pas partie de l'API wordpress. si quelqu'un a une meilleure idée, laissez s'il vous plaît un commentaire.
$_REQUEST['post_id'] > 0 // it's being uploaded from a page/post
$_REQUEST['post_id'] == 0 // it's being uploaded from the media library
empty($_REQUEST['post_id']) // it came from somewhere else (plugin, theme, etc)
Il semble être fiable pour les publications et la bibliothèque, mais "l'autre" n'est probablement pas fiable à 100%, car les plugins et les thèmes pourraient ajouter des paramètres pour tromper le code en lui faisant croire que c'était l'un des autres types.