Как массово обновить посты вордпресс?
Мне нужно обновить большое кол-во опубликованных постов на WordPress. Подскажите подойдет для этой задачи такой код:
// Запускаем функцию обновления постов один раз
add_action( 'wp', 'update_old_posts_once' );
function update_old_posts_once() {
if ( ! wp_next_scheduled( 'update_old_posts_event' ) ) {
wp_schedule_single_event( time() + 900, 'update_old_posts_event' );
}
}
// Функция обновления постов
add_action( 'update_old_posts_event', 'update_old_posts' );
function update_old_posts() {
// Получаем список всех постов, которые были опубликованы более 30 дней назад
$old_posts = get_posts( array(
'post_type' => 'post',
'post_status' => 'publish',
'date_query' => array(
array(
'column' => 'post_date',
'before' => '30 days ago'
)
),
'posts_per_page' => -1
) );
// Обновляем каждый пост с задержкой в 15 минут
$delay = 900; // 15 минут в секундах
foreach ( $old_posts as $post ) {
$post_id = $post->ID;
// Создаем массив с новыми значениями полей
$updated_post = array(
'ID' => $post_id,
// Здесь можно указать любые поля, которые нужно обновить
// Например:
//'post_title' => 'Новый заголовок',
//'post_content' => 'Новый текст',
//'post_excerpt' => 'Новый отрывок',
//'post_category' => array( 2, 4, 6 ) // Новые категории
);
// Обновляем пост
wp_update_post( $updated_post );
// Создаем задержку в 15 минут перед обновлением следующего поста
sleep( $delay );
}