WordPress как на ладони
Очень Удобный и Быстрый Хостинг для сайтов на WordPress. Пользуюсь сам и вам рекомендую!

Как запустить функцию при ДОБАВЛЕНИИ записи произвольного типа?

У меня есть кастомный типа записей - production. Я хочу сделать кое-какие действия, когда нажимаю добавить [production], вбиваю данные и нажимаю опубликовать (в первый раз) - должна срабатывать моя функция.

save_production, edit_production - работают, когда я обновляю/редактирую запись, а при первом добавлении ни одна из этих функции не работает, publish_production - не работает тоже почему-то, но она работала, когда я указывал два параметра $post_id, $post - но выводила ошибки, но работала.

add_action('publish_production', 'function_to_perform');
function function_to_perform( $post_id ) {
	...
}
0
firuzinho
5 лет назад -2
  • 1
    campusboy4750 www.youtube.com/c/wpplus

    Попробуйте вот так:

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

    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Вход . Регистрация