save_post action, прежде чем опубликовать / сохранить сообщение

Я пытаюсь обновить метатеги сообщений только после того, как они были сохранены или обновлены.

Моя функция довольно проста

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'); 

Когда я добавляю новое сообщение в wp-admin/post-new.php я вижу, что два значения настраиваемых полей уже обновлены. Поля сами существуют с расширенными настраиваемыми полями. Но не следует обновлять до тех пор, пока сообщение не будет опубликовано / сохранено и не обновлено. Почему это обновление полей, как только загружается форма post-new.php?

Solutions Collecting From Web of "save_post action, прежде чем опубликовать / сохранить сообщение"

Черновик или «пустой» сохраняется, как только вы начинаете создавать новое сообщение. Эти новые должности имеют post_status auto-draft . Проверьте это, чтобы предотвратить обратный вызов при перезагрузке этих «пустых» сообщений.

 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); 

Вы также можете проверить DOING_AJAX и DOING_AUTOSAVE .