Ich habe also eine Metabox, die beim Speichern eines Beitrags Javascript auslösen soll (um die Seite in diesem Anwendungsfall zu aktualisieren).
Im klassischen Editor kann dies über eine einfache Umleitung erfolgen, die mit save_post
(mit hoher Priorität) verbunden ist.
Da Gutenberg den Speichervorgang für vorhandene Metaboxen jetzt in einzelne AJAX-Aufrufe konvertiert, muss es sich um Javascript handeln. Wie kann ich also Folgendes tun:
Auf ein Ereignis warten, bei dem alle Speichervorgänge abgeschlossen sind, und dann das Javascript auslösen? Wenn ja, wie heißt dieses Ereignis? Gibt es irgendwo einen Hinweis auf diese Ereignisse? ODER
Javascript innerhalb des AJAX-Prozesses zum Speichern der Metabox auslösen, der dann den Status des Speichervorgangs der übergeordneten Seite überprüfen kann, bevor Sie fortfahren?
quelle
wp.data
Datenspeichernwp.data.select('core/editor').isSavingPost()
... diese Art des Zugriffs ist nirgends dokumentiert, wo ich sie sehen kann ... und sie scheint auch unzuverlässig zu sein, da siefalse
nach dem ersten Speichern des Beitrags (vorher undefiniert) zurückkehrt, ob der Editor noch speichert oder nicht. GesichtspalmeAntworten:
Ich bin mir nicht sicher, ob es einen besseren Weg gibt, aber ich höre zu,
subscribe
anstatt der Schaltfläche einen Ereignis-Listener hinzuzufügen:Offizielle Dokumente der Post Editor-Daten: https://wordpress.org/gutenberg/handbook/designers-developers/developers/data/data-core-editor/
quelle
subscribe
Methode überhaupt kommt? ist es Teil derwp.data
Funktion? Ich sehe es nicht in den Dokumenten erwähnt.subscribe
ist eine Methode des Moduls wp.data . Öffnen Sie die Konsole, wenn Sie einen Beitrag mit Gutenberg bearbeiten, und führen Sie ihn auswp.data
. Hier werden alle verfügbaren Datenmodulmethoden aufgelistet.wp.data
Modell nützlich ist . Für mich ist es zurück zu PHP (und klassischem Editor).Okay, also viel mehr hackige Lösung als ich wollte, aber es hat funktioniert ...
Hier ist eine leicht vereinfachte und abstrahierte Methode, um dies aus meinem Code heraus zu tun, falls jemand jemals dasselbe tun muss (da ich sicher bin, dass in naher Zukunft weitere Plugins verfügbar sein werden).
... müssen sich nur ändern
metabox_input_id
undtrigger_value
nach Bedarf anpassen. :-)quelle
Sie müssen die Funktion zum Abbestellen von Abonnieren und Anrufen erfassen , um Mehrfachanrufe zu vermeiden.
quelle