// Function to remove TOC block from content - PRECISE VERSION function tgiv_remove_toc_block($content) { // Сохраняем оригинальный контент для отладки $original = $content; // Шаг 1: Удаляем весь контейнер TOC, начиная с toc-header и заканчивая закрывающим // Используем более точное регулярное выражение $pattern = '/(]*class="[^"]*\btoc-header\b[^"]*"[^>]*>.*?<\/div>)\s*(]*class="[^"]*\brivax-toc-items\b[^"]*"[^>]*>.*?<\/ul>)\s*<\/div>/is'; // Заменяем на пустую строку, но добавляем разделитель абзацев $replacement = ''; $content = preg_replace($pattern, $replacement, $content); // Шаг 2: Если первый шаг не сработал, пробуем другой паттерн if ($content === $original) { // Пробуем найти и удалить по частям $content = preg_replace('/
.*?<\/div>/is', '', $content); $content = preg_replace('/
    .*?<\/ul>/is', '', $content); $content = preg_replace('/]*>\s*\s*<\/div>/is', '', $content); // Удаляем пустые div, которые могли остаться $content = preg_replace('/]*>\s*<\/div>/is', '', $content); } // Шаг 3: Восстанавливаем структуру абзацев // Ищем ситуации, где два абзаца слились (нет тега

    между ними) // Добавляем закрывающий и открывающий теги p там, где они должны быть // Вместо сложных манипуляций, просто применяем wpautop заново // Но только если функция доступна if (function_exists('wpautop')) { // Сначала убираем все теги

    и

    $content_without_p = preg_replace('/<\/?p[^>]*>/', '', $content); // Затем применяем wpautop для правильного форматирования $content = wpautop($content_without_p); } return $content; } Василий Вакаров: Интригу про встречу Уиткоффа и Зеленского придумали и "слили" через киевское издание, подтверждений нет • Говорит Европа