web-dev-qa-db-fra.com

Comment trouver l'origine d'un fichier téléchargé depuis wp_handle_upload?

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!

1
Jason

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.

1
Jason