Upload von Bildern und die Rest-API: Das Rad nicht neu erfinden!
Beim Speichern von WordPress Medien gibt es einige Fallstricke.
Beispielsweise bei der Attachment Erstellung und den dazugehörigen Metadaten oder dem Upload der Dateien selbst.
Manchmal benötigen wir schlichtweg Funktionalität um Dateien wie Bilder selbst zu speichern oder in einem Ordner zu verschieben.
Dann können wir natürlich relativ mühsam auf alle Schritte achten, damit wir den Prozess von WordPress 1:1 nachbilden können.
Viel besser ist es aber, die harte Arbeit einfach direkt von WordPress übernehmen zu lassen.
Wie wir wissen, können wir Medien auch über die Rest API von WordPress speichern. Dort passiert also schon die ganze Arbeit – die sollten wir uns zu Nutze machen!
REST API Callback für Medien verwenden
Die REST-API bietet uns bereits Funktionalität, die wir verwenden können!
In der WP_REST_Attachments_Controller Klasse befindet sich all die Funktionalität, die wir zum Erstellen der Medien benötigen.
Dadurch es sich um eine REST-Klasse handelt, müssen wir entsprechend auch ein REST-Objekt übergeben.
Dabei muss zumindest das zu speichernde File übergeben werden.
Mit der nativen „create_item“ Funktion wird dann das Attachment erstellt.
Und hier nimmt uns WordPress die ganze Arbeit ab: Post erstellen, Bild uploaden, Meta Daten setzen etc…
Ein weiterer Vorteil von dieser Methode ist, dass wir alle unterstützten WordPress Datei-Formate auf diese Art und Weise hochladen können – das betrifft also nicht nur Bilder.
Natürlich kann man auch die native WordPress REST Route für Medien verwenden, allerdings ist man dann etwas limitiert wenn es um Zusatzfunktionen im selben REST Call geht.
Diese Methode eignet sich also äußerst gut für die Erstellung von Medien.
Da es sich außerdem um eine WordPress-Core-File handelt, wird diese Klasse auch ständig gewartet und aktualisiert!
Links