Как запустить функцию при ДОБАВЛЕНИИ записи произвольного типа?
У меня есть кастомный типа записей - production. Я хочу сделать кое-какие действия, когда нажимаю добавить [production], вбиваю данные и нажимаю опубликовать (в первый раз) - должна срабатывать моя функция.
save_production, edit_production - работают, когда я обновляю/редактирую запись, а при первом добавлении ни одна из этих функции не работает, publish_production - не работает тоже почему-то, но она работала, когда я указывал два параметра $post_id, $post - но выводила ошибки, но работала.
add_action('publish_production', 'function_to_perform');
function function_to_perform( $post_id ) {
...
}
Попробуйте вот так:
add_action( 'transition_post_status', 'production_publish_status', 10, 3 ); /** * @param string $new_status * @param string $old_status * @param WP_Post $post */ function production_publish_status( $new_status, $old_status, $post ) { // Если не наш тип записи - прерываем выполнение if ( $post->post_type !== 'production' ) { return; } // Если статус Записи не изменился - прерываем выполнение if ( $new_status === $old_status ) { return; } // Если новый статус Записи отличается от "Опубликовано" - прерываем выполнение if ( $new_status !== 'publish' ) { return; } /** * Сюда выполнение кода доходит, если * - наш тип записи production * - статус записи изменился с любого статуса, отличного от "Опубликовано", на статус "Опубликовано", * * Выполняем что нам нужно! */ }Подробнее в описании wp_transition_post_status()