Intereting Posts
показанное изображение не отображается Сохранение и отображение кода JavaScript Как отображать несколько сообщений meta_key / meta_values ​​по запросу SQL Underscores.me извлекает следующее / предыдущее миниатюру сообщения в функции post_nav Почему $ _SESSION работает только при входе в систему? почему цикл wordpress по умолчанию не работает вне index.php Как получить ссылку профиля пользователя Buddypress и определенное поле профиля пользователя для текущего автора сообщения? 1 Установка WordPress с 2 страницами: каждая страница получает отдельный домен Удаление / страница / 2 из разбивки на страницы Сортировка сообщений DESC на основе количества комментариев с использованием WP_Query Недоступен пункт меню всплывающего меню. Массовое редактирование текста пользовательского отрывка в WordPress Создание таблицы из короткого кода, избегая wpautop для каждой строки Пользовательский, условный переадресация при выходе из системы Добавить баннер в панель инструментов

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 .