Как обновить на сайте WordPress большое количество записей без изменений?

У меня на сайте WordPress есть категория https://russia247.ru/news, в которой 12000 записей.

Для перезаписи миниатюры мне нужно обновить эти записи (без изменений).

Я пробовал через плагин bulk-move-posts (из категории Новости в категорию Новости) - 502 ошибка.
также пробовал в записях открывать по 500 шт на странице и пересохранять - 502 ошибка.

Какие есть варианты?

Добавьте этот код в конец functions.php вашей активной темы:

/**
 * Массовое «обновление» записей без изменений
 * Запуск: https://russia247.ru/?refresh_posts=1&cat=news
 * Только для администраторов!
 */
function refresh_posts_batch() {
    if ( ! isset( $_GET['refresh_posts'] ) || ! current_user_can( 'manage_options' ) ) {
        return;
    }

    $option_key = 'refresh_posts_offset';
    $offset = (int) get_option( $option_key, 0 );
    $batch_size = 5; // По 5 записей за запрос — безопасно для шаред-хостинга
    $category = isset( $_GET['cat'] ) ? sanitize_text_field( $_GET['cat'] ) : '';

    $args = array(
        'post_type'      => 'post',
        'post_status'    => 'publish',
        'posts_per_page' => $batch_size,
        'offset'         => $offset,
        'fields'         => 'ids',
        'orderby'        => 'ID',
        'order'          => 'ASC',
    );

    if ( $category ) {
        $args['category_name'] = $category;
    }

    $post_ids = get_posts( $args );

    if ( empty( $post_ids ) ) {
        delete_option( $option_key );
        wp_die( 'Готово! Обработано записей: ' . $offset );
    }

    foreach ( $post_ids as $post_id ) {
        wp_update_post( array( 'ID' => $post_id ) );
    }

    $new_offset = $offset + $batch_size;
    update_option( $option_key, $new_offset );

    // Автоперезагрузка через 3 секунды
    $url = add_query_arg( array( 'refresh_posts' => 1, 'cat' => $category ), home_url() );
    echo "<div style='font-family:monospace;padding:20px;background:#f0f0f1;'>";
    echo "Обработано: <strong>{$new_offset}</strong> записей...<br>";
    echo "<meta http-equiv='refresh' content='3;url=" . esc_url( $url ) . "'>";
    echo "</div>";
    exit;
}
add_action( 'template_redirect', 'refresh_posts_batch', 1 );


Откройте в браузере (будучи залогиненным как админ)
https://russia247.ru/?refresh_posts=1&cat=news

Страница будет автоматически перезагружаться каждые 3 секунды, обрабатывая по 5 записей.

Когда закончится — увидите сообщение «Готово!».

Удалите код из functions.php после завершения.

guest
Закрыть меню