Какой экшн выбрать?

Приветствую!)
У меня стоит задача – выставлять дату создания поста по значению одного из кастомфилдов.

Реализовываю следующим образом:

add_action( 'edit_post', 'update_post_date', 1 );    
function update_post_date($post_id) {
    if ( !wp_is_post_revision( $post_id ) ) {        
            global $wpdb;
                    
            $item_start = get_post_meta($post_id, 'item_date_start', true);
            if ($item_start!=''){
                $item_start_unix = strtotime($item_start);
                
                $new_date = date('Y-m-d h:m:s',$item_start_unix);
                $new_date_gmt = gmdate('Y-m-d h:m:s',$item_start_unix);
                        
                $wpdb->query("UPDATE $wpdb->posts SET post_date = '".$new_date."', post_date_gmt = '".$new_date_gmt."', post_status='publish' WHERE ID = ".$post_id."");                        
            }
    }     
}

Все работает, все хорошо. Но этот экшн срабатыает и во время удаления поста))) А т.к. у меня post_status=’publish’, то пост не удаляется))

Могли бы вы как-то помочь мне с этой проблемой?

есть вариант добавить еще один экшн, но это я думаю не самое оптимальное решение:

add_action( 'trashed_post ', 'update_post_status_deleted', 1 );    
function update_post_status_deleted($post_id) {
    global $wpdb;
    $wpdb->query("UPDATE $wpdb->posts SET post_status='trash' WHERE ID = ".$post_id."");                        
}
Anonymous
Отправить
Ответ на: