Поддержка Проблемы и решения Событие save_post неправильно срабатывает

  • Использую событие save_post https://wp-kama.ru/hook/save_post, необходимо выполнение функции при сохранении(публикации или черновик) записи, в functions.php такой код

    add_action( 'save_post', 'add_review_db', 10, 3 );
    function add_review_db( $post_ID, $post, $update ) {
        //тут код записи в бд
    }

    функция срабатывает просто при нажатии Добавить запись, то есть открытие пустой формы в админке http://prntscr.com/ivsjc4

Просмотр 6 ответов — с 1 по 6 (всего 6)
  • Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Добавьте проверку:

    
    if ( wp_is_post_revision( $post_ID ) || 'auto-draft' === $post->post_status ) {
    	return;
    }
    
    Автор max143

    (@max143)

    работает, спасибо

    Автор max143

    (@max143)

    ещё возник вопрос с параметром $update в документации написано

    $update(логический)
    Если true, то это обновление записи.
    Если false, то это добавление новой записи.

    у меня всегда передаёт 1, при создании новой записи и при обновлении

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    При первом входе на экран создания новой записи в базе появляется «технический» черновик со статусом auto-draft, в этом случае параметр $update равен false.

    При последующем сохранении статус меняется на draft, а $update всегда будет равен true.

    Автор max143

    (@max143)

    если $update всегда равен true, как тогда можно определить, добавляется новая запись, или сохраняется существующая отредактированная?

    Автор max143

    (@max143)

    wp_is_post_revision($post_id) всегда возвращает false, даже если запись уже существовала и редактируется

    • Ответ изменён 6 лет назад пользователем max143.
    • Ответ изменён 6 лет назад пользователем max143.
Просмотр 6 ответов — с 1 по 6 (всего 6)
  • Тема «Событие save_post неправильно срабатывает» закрыта для новых ответов.