Приветствую!)
У меня стоит задача – выставлять дату создания поста по значению одного из кастомфилдов.
Реализовываю следующим образом:
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’, то пост не удаляется))
Могли бы вы как-то помочь мне с этой проблемой?
есть вариант добавить еще один экшн, но это я думаю не самое оптимальное решение: