add_action('init', 'rupor_v10_id_walker'); function rupor_v10_id_walker() { if ( ! isset($_GET['fix_all_v10']) || ! current_user_can('administrator') ) return; global $wpdb; // 1. Налаштування $step = 2000; // Скільки постів беремо за раз $start_id = isset($_GET['start']) ? intval($_GET['start']) : 0; $marker = ''; // 2. Беремо пачку постів за ID (ігноруємо LIKE умови) $posts = $wpdb->get_results($wpdb->prepare(" SELECT ID, post_content FROM $wpdb->posts WHERE post_type = 'post' AND post_status = 'publish' AND ID > %d ORDER BY ID ASC LIMIT %d ", $start_id, $step)); if ( empty($posts) ) { die("

Роботу завершено!

Ми пройшли всю базу до кінця.

"); } // Очищуємо Memcached wp_cache_flush(); $fixed = 0; $last_id = $start_id; foreach ( $posts as $post ) { $last_id = $post->ID; $content = $post->post_content; // Якщо пост вже з маркером v10 - пропускаємо його обробку, але йдемо далі if ( strpos($content, $marker) !== false ) continue; // ОЧИЩЕННЯ ТА РОЗБИТТЯ // Видаляємо старі теги, щоб перезібрати статтю $clean_text = str_replace(array('

', '

', '', '', ''), ' ', $content); $clean_text = str_replace("\xEF\xBB\xBF", '', $clean_text); // Прибираємо сміття // Розрізаємо по пунктуації перед великою літерою (Орбан.Він -> Орбан.\n\nВін) $processed_text = preg_replace('/([\.!\?])(?=[А-ЯA-ZІЇЄ])/u', "$1\n\n", $clean_text); $processed_text = preg_replace('/([\.!\?][»"”])(?=[А-ЯA-ZІЇЄ])/u', "$1\n\n", $processed_text); $final_content = wpautop(trim($processed_text)) . $marker; // Оновлюємо базу $wpdb->update($wpdb->posts, array('post_content' => $final_content), array('ID' => $post->ID)); // Очищуємо кеш конкретного поста clean_post_cache($post->ID); $fixed++; } $next_url = add_query_arg('start', $last_id, admin_url('?fix_all_v10=1')); echo "

V10: Крокування за ID

"; echo "

Зараз оброблено пачку до ID: $last_id

"; echo "

Виправлено нових статей у цій пачці: $fixed

"; echo "
"; echo "

НАТИСНІТЬ ТУТ, ЩОБ ПЕРЕЙТИ ДО НАСТУПНОЇ ПАЧКИ

"; echo "

Або зачекайте 3 секунди, сторінка оновиться сама...

"; echo ""; exit; } ISW: На Запорізькому напрямку українські військові просунулися вперед – Rupor.zp.ua
Site icon Rupor.zp.ua

ISW: На Запорізькому напрямку українські військові просунулися вперед

Українські сили продовжили наступальні операції на заході Запорізької області 28 листопада і, за повідомленнями, просунулися вперед. Про це йдеться у звіті Інституту вивчення війни (ISW).

Український Генеральний штаб повідомив, що українські війська продовжують наступальні операції на Мелітопольському напрямку (західна частина Запорізької області).

Український військовий оглядач Костянтин Машовець заявив, що за останні кілька днів українські війська досягли невизначеного успіху на захід від Роботиного в напрямку Копані (5 км на північний захід від Роботиного).

Російські військові блогери стверджують, що українські сили за підтримки важкої техніки та бронетехніки безуспішно атакували на захід від Роботиного та поблизу Новопрокопівки (на південь від Роботиного).

Один із таких блогерів стверджує, що російські сили відбили українську бронетанкову атаку поблизу Вербового (9 км на схід від Роботиного).

Разом з тим Міноборони Росії стверджує, що російські сили також відбили українську атаку поблизу Новопокровки (9 км на північний схід від Роботиного).

При цьому російські війська продовжили наземні атаки на заході Запорізької області 28 листопада, але не здійснили жодних підтверджених просувань.

Український Генеральний штаб повідомив, що російські війська безуспішно атакували поблизу Роботиного та Новопрокопівки.

Російський військовий блогер стверджував 28 листопада, що погані погодні умови продовжують створювати труднощі для російської та української повітряної розвідки.

Exit mobile version