WP. При изменении статуса кастомного постайпа не хочет менять с publish на future. Что делаю не так?
add_action('save_post', 'generate_course_post');
function generate_course_post($post_id) {
$_post = get_post( $post_id );
if ($_post->post_name !== "" && $_post->post_type == "page") {
// Добавление страницы курса
$course_id = get_field('course_id');
if (!$course_id) {
// Создаем массив данных новой записи
$post_course = array(
'post_type' => 'course',
'post_title' => wp_strip_all_tags($_post->post_name),
'post_status' => 'future',
'post_date' => $_post->post_date,
);
$course_id = wp_insert_post($post_course);
// У страницы обновляем поле "course_id"
update_field("course_id", $course_id, $post_id);
// У страницы обновляем поле "course_link"
update_field("course_link", get_post_permalink($course_id), $post_id);
// У custom type курс обновляем поле "page_id"
update_field("page_id", $post_id, $course_id);
} elseif ($course_id) {
if (get_field('new_link', $post_id)) {
update_field('new_link', false, $post_id);
wp_update_post(array(
'ID' => $course_id,
'post_name' => sha1(time()),
'post_status' => 'future',
'post_date' => $_post->post_date,
));
} else {
wp_update_post(array(
'ID' => $course_id,
'post_status' => 'future',
'post_date' => $_post->post_date,
));
}
}
// Добавление страницы подписки
$subscribe_id = get_field('subscribe_id');
if (!$subscribe_id) {
// Создаем массив данных новой записи
$post_subscribe = array(
'post_type' => 'custom_subscribe',
'post_title' => wp_strip_all_tags($_post->post_name),
'post_status' => 'publish',
);
$subscribe_id = wp_insert_post($post_subscribe);
// У страницы обновляем поле "subscribe_id"
update_field("subscribe_id", $subscribe_id, $post_id);
// У страницы обновляем поле "subscribe_link"
update_field("subscribe_link", get_post_permalink($subscribe_id), $post_id);
// У custom type подписки обновляем поле "page_id"
update_field("page_id", $post_id, $subscribe_id);
}
}
}
И так, как можно видеть из кода, я при создании страницы(post_type=page) создаю ещё несколько custom post_type, одному из которых необходимо делать планировку публикации. Что происходит при создании - всё создаётся, всё хорошо, статус = future (запланировано), дата правильная (дата ставится такая же как дата публикации страницы) но когда мы дожидаемся нужного времени, ничего не происходит, custom post_type, в данном случае "course", не публикуется как запланировано. Если без планировки - всё отрабатывает, сразу всё публикуется и всё хорошо. Вопрос, почему не отрабатывает планировка? и как сделать чтобы она работала?
Второй момент - когда страница уже создана, при сохранении, она должна так же менять дату публикации custom post_type и его, соответственно, статус. Как итог - дата меняется, статус не меняется.
Ответы (1 шт):
Опубликовался кастомный постайп, добавил "post_date_gmt" правильный