Удаление массовых блоков рекламы в WordPress через одну SQL‑команду
Почему это полезно
Массовое редактирование сотен или тысяч постов вручную — долго и рискованно. Все записи WordPress хранятся в таблице wp_posts, в поле post_content. Если рекламный блок вставлен одинаково (есть одинаковый начальный и конечный маркер), SQL позволяет удалить его разом. Это экономит часы ручной работы и устраняет человеческие ошибки.
Что нужно сделать сначала — важные подготовительные шаги
- Сделайте полную резервную копию базы данных (mysqldump или экспорт в phpMyAdmin). Это обязательно.
- Работайте сначала на тестовой копии или в транзакции, чтобы можно было откатиться.
- Ограничьте скрипт (WHERE post_type=’post’ и/или WHERE post_status=’publish’), чтобы случайно не затронуть другие типы записей.
Важно: без резервной копии откат возможен только вручную.
Как работает основной приём — идеи одной строкой
Идея: найти позицию начала рекламного блока (LOCATE), найти позицию конца (LOCATE + длина конечного маркера), извлечь полный фрагмент через SUBSTR, и заменить этот фрагмент на пустую строку или пробел через REPLACE в UPDATE.
Пошаговая инструкция с примерами команд
- Откройте phpMyAdmin или подключитесь к MySQL-консоли и выберите базу данных блога.
- Найдите посты, в которых есть целевой маркер (проверка без изменений):
SELECT ID, post_title, LOCATE('”.Простая методика отката
- Если вы сделали дамп перед изменением — просто импортируйте его обратно.
- Если у вас транзакция (InnoDB) и вы ещё не закоммитили — выполните ROLLBACK.
- Без резервной копии откат будет ручным и затратным.
Краткий словарь (1 строка на термин)
- LOCATE: функция MySQL, возвращающая позицию подстроки в строке.
- SUBSTR: извлекает часть строки по позиции и длине.
- REPLACE: заменяет вхождения подстроки другой строкой.
- wp_posts.post_content: поле таблицы с HTML-содержимым поста.
Матрица рисков и смягчения
- Ошибка в SQL (внесение нежелательных изменений): высокий риск — смягчение: бэкап и тестовая база.
- Удалён не весь блок: средний риск — смягчение: несколько проходов с разными маркерами.
- Повреждение HTML: средний риск — смягчение: проверка выборочных постов и валидатор HTML.
Заключение и рекомендации
Этот приём даёт прямой, быстрый инструмент для массового удаления одинаковых фрагментов в постах WordPress. Он особенно полезен при переходе на новую систему вставки рекламы или при смене рекламных сетей. Всегда работайте через бэкап и сначала тестируйте на копии. Если структура рекламных вставок слишком вариативна, предпочитайте скриптовую обработку или WP‑CLI.

Если у вас остались вопросы или вы хотите пример команды для вашего конкретного блока — опишите стартовый и конечный маркеры, и я помогу составить точный SQL.
Image credits: Shutterstock