Je cherche à écraser la fonctionnalité de téléchargement existante pour enregistrer le fichier sur un service de stockage distant. Le stockage distant a une interface HTTP qui me permet de poster un fichier et de retourner une URL adressable. Cela s'explique par le fait que le service de stockage distant dispose d'une grande quantité d'espace et est automatiquement répliqué pour assurer une haute disponibilité.
J'ai déjà compris comment envoyer des fichiers. Cependant, je ne sais pas quelle fonction/crochet je devrais utiliser pour écraser le comportement existant.
Deux options:
Accrocher dans 'wp_handle_upload'
, un filtre fourni par la fonction wp_handle_upload()
dans wp-admin/includes/file.php
:
apply_filters(
'wp_handle_upload',
array( 'file' => $new_file, 'url' => $url, 'type' => $type ), 'upload'
)
Remplacez le nouvel URI de fichier par votre URI distant.
La fonction wp_insert_attachment()
dans wp-includes/post.php
offre deux actions:
do_action('edit_attachment', $post_ID);
do_action('add_attachment', $post_ID);
Vous pouvez obtenir les données de pièce jointe par $post_ID
et modifier n’importe quelle valeur ici.