Erhalten Sie Post-Meta, bevor es aktualisiert wird (während SAVE_POST)

Nehmen wir an, ich habe ein benutzerdefiniertes Feld im Post-Editor und ändere den Wert von AAA in ZZZ ..:

add_action('save_post', function($post){ $value = get_post_meta($post->ID, 'mykey'); } , 1); 

Wie bekomme ich den alten Wert ( AAA ) dieses Meta-Schlüssels? Während save_post (noch früher 1. Priorität), bekomme ich ZZZ

Solutions Collecting From Web of "Erhalten Sie Post-Meta, bevor es aktualisiert wird (während SAVE_POST)"

save_post wenn ein Post oder eine Seite erstellt oder aktualisiert wird, z. B. von einem Import-, Post- / Seitenbearbeitungsformular, xmlrpc oder per E-Mail-Post. Aktionsfunktionsargumente: Post-ID und Post-Objekt. Wird ausgeführt, nachdem die Daten in der database gespeichert wurden.

Der obige Absatz wird aus dem WP Codex zitiert.

Daher können Sie diesen Hook nicht verwenden, um einen älteren Wert zu erhalten, da er nach dem Speichern neuer Werte in der database ausgetriggers wird. WP hat einen weiteren Aktions-Hook namens wp_insert_post aber leider tut dieser Hook dasselbe wie save_post

alternativ können Sie Filter verwenden, um die Aufgabe zu erledigen. WP bietet wenige Filter, um den Beitrag beim Speichern oder vor dem Speichern in der database zu bearbeiten. wie wp_insert_post_data & content_save_pre könnte für Sie arbeiten, denke ich.

Aktualisieren

Hier ist eine weitere Diskussion zu diesem Thema, die für Sie hilfreich sein könnte.

Der Trick, den ich gemacht habe, war:

1) Erstellt eine versteckte Meta-Box, in die ich die Eingabe mit dem Wert von current_meta_value eingefügt habe
2) während save_post ich es gegen new_meta_value .

das war alles.