save_post action fire, bevor ich den Beitrag veröffentliche / speichere

Ich versuche, ein Post-Meta nur zu aktualisieren, nachdem es gespeichert oder aktualisiert wurde.

Meine function ist ziemlich einfach

function update_test( $post_id ) { update_post_meta($post_id, 'copied', '1'); update_post_meta($post_id, 'blurb', 'this value updated by save_post action'); } add_action( 'save_post', 'update_test'); 

Wenn ich einen neuen Beitrag bei wp-admin/post-new.php kann ich sehen, dass die Werte der beiden benutzerdefinierten Felder bereits aktualisiert wurden. Die Felder selbst existieren mit erweiterten benutzerdefinierten Feldern. Aber sollte nicht aktualisiert werden, bis der Beitrag veröffentlicht / gespeichert und aktualisiert wurde. Warum werden die Felder aktualisiert, sobald das Formular post-new.php geladen wird?

Solutions Collecting From Web of "save_post action fire, bevor ich den Beitrag veröffentliche / speichere"

Ein Entwurf oder “leer” wird gespeichert, sobald Sie mit dem Erstellen eines neuen Posts beginnen. Diese neuen Posts haben den post_status des auto-draft . Überprüfen Sie dies, um zu verhindern, dass Ihr callback auf diese “leeren” Postspeicherungen abfeuert.

 function update_test( $post_id, $post ) { if (isset($post->post_status) && 'auto-draft' == $post->post_status) { return; } update_post_meta($post_id, 'copied', '1'); update_post_meta($post_id, 'blurb', 'this value updated by save_post action'); } add_action( 'save_post', 'update_test', 1, 2); 

Sie sollten auch nach den Konstanten DOING_AJAX und DOING_AUTOSAVE .