WordPress hook nach dem hinzufügen/aktualisieren von post UND nach dem einsetzen der post-meta?
Ich habe einen custom post type namens "videos", das hat auch ein paar benutzerdefinierte Felder definiert. Bei der Erstellung oder Aktualisierung eines "videos" zu posten, würde ich mag, um eine Funktion auszuführen.
Leider, diese Funktion muss die Werte der post-meta-Daten für die post, die ich gerade erstellt haben, und die üblichen Haken ( save_post
, publish_post
usw.) zu laufen scheinen, bevor die post-meta wird in die Datenbank eingefügt, so dass es nicht verfügbar ist.
Wenn ich manuell update den post einfach durch Klick auf "Veröffentlichen", ohne änderungen vorzunehmen, funktioniert einwandfrei.
Ist da ein Haken, der ausgelöst wird, die später im Prozess, nach dem alle Metadaten eingefügt wurde?
- warum sind Sie nicht mit
wp_insert_post
?? oderwp_update_post
? - Ich habe versucht, Sie - auch Sie Feuer, bevor Sie die meta-Daten in die Datenbank eingefügt.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es gibt ein
undokumentierteHaken genanntupdated_post_meta
das tut, was ich brauche.Es übergeben wird, 4 Parameter, um die hooked-Funktion: die meta-ID die Objekt-ID (identisch mit der Beitrags-ID), die meta-key und meta-Wert. In meiner süchtig-Funktion, die ich überprüfen, um zu sehen, ob die meta-Taste Namen ist das Feld, das ich brauche den Wert und, wenn ja, geht es.
Hier ist, wie es aussieht:
Übrigens, im Gegensatz zu
added_post_meta
Sie ersetzen nichtpost
mit der post geben, die Sie abzielen. In meinem Fall, der name der post-Typ istvideos
, aber ich hatte noch verwendenupdated_post_meta
und NICHTupdated_videos_meta
.Der Grund, post meta, ist noch nicht verfügbar es ist, weil Sie save_post-hook zu speichern post-meta. So Haken Sie läuft nicht nach post-meta gespeichert Datenbank.
Zwei Lösungen für Ihr problem.
add_action('save_post', 'my_function');
Funktion my_function($post_id){
}
add_action('save_post', 'my_function', 12 , 3);
Funktion my_function($post_id, $post, $update){
}