Howdi,
Ich versuche, Code auszulösen, der beim Speichern eines Bildes in der Medienbibliothek auftritt. Wie üblich wähle ich die Datei aus, lade sie hoch, gebe die Metadaten ein und klicke dann auf Speichern. An dieser Stelle möchte ich mich in WordPress einbinden und WordPress zu einer anderen URL umleiten. Auf diese Weise kann ich den Benutzer nicht zu einer Liste hochgeladener Medien führen, sondern stattdessen zu einem Bildbearbeitungswerkzeug.
Ich habe einen Filter gefunden, der kurz vor dem Erstellen der Metadaten ausgelöst wird, aber nichts, wenn die Datei gespeichert wird.
Vielen Dank,
Antworten:
Tatsächlich wird nach dem Hochladen von Mediendateien kein Hook ausgelöst, zumindest soweit ich weiß. Das Problem mit den beim Hochladen und Speichern von Mediendateien und -daten verfügbaren Hooks besteht darin, dass sie auf einen Teil des Prozesses beschränkt sind und daher die Verwendung eines dieser Hooks nicht zuverlässig ist.
add_attachment
Wird beispielsweise ausgelöst, nachdem eine neue Datei den Upload-Vorgang abgeschlossen hat, bevor die Dateimetadaten bearbeitet werden. Wenn Sie den Benutzer an dieser Stelle umleiten möchten, wird der Upload-Vorgang für nachfolgende Dateien unterbrochen, wenn mehr als eine Datei hochgeladen wurde könnte jedoch für andere Arten von Aktionen geeignet sein.Für Ihren speziellen Fall können Sie sich jedoch an den
admin_init
Aktions-Hook binden und prüfen, ob wir uns nach dem Hochladen oder Bearbeiten der Datei auf dem Bildschirm der Medienbibliothek befinden. Wir wissen, dass wir die Anzahl der Anhänge vor dem Hochladen speichern und sie mit der Anzahl der Anhänge nach dem Hochladen vergleichen hochladen:Dieser Code leitet den Benutzer nach erfolgreichem Hochladen oder Bearbeiten der Mediendatei zum Dashboard weiter. Sie können ihn an Ihre Bedürfnisse anpassen. Möglicherweise möchten Sie auch einen anderen Admin-Hook auswählen, als
admin_init
wenn Sie andere Aufgaben als die Umleitung ausführen möchten.quelle
Es sieht so aus, als ob beim Speichern von Medien keine Aktion ausgeführt wird, aber es gibt einen Filter. Leider bedeutet das, dass Sie einige Dinge tun können, Sie können einfach nichts wiedergeben oder Sie werden den Filter brechen.
$ stuff ist eigentlich ein Array von Feldern, die von der Medienelementseite verwendet werden. Sie können auch andere Dinge ausprobieren, z. B. den Anschluss eines allgemeineren Admin-Panel-Hooks und die Überprüfung des Werts $ _GET ['action'] von 'editattachment'.
quelle
Vielleicht eine etwas späte Antwort, aber ich hatte ein ähnliches Szenario und wollte die Lösung teilen.
In
functions.php
dem Thema (das Erstellen eines Plugins würde auch funktionieren) habe ich den'add_attachment'
Hook verwendet, um basierend auf jeder neu hochgeladenen Datei einen neuen Beitrag (benutzerdefinierter Beitragstyp 'talk') zu erstellen. Natürlich könnte das Beispiel ein bisschen Aufhellen vertragen, aber dies funktionierte zum Parsen jedes hochgeladenen Medienanhangs.quelle