Skip to content

Всё для WordPress, веб-разработки — и не только

🔍 Как найти и заменить текст в WordPress на всём сайте

🔍 Как найти и заменить текст в WordPress на всём сайте

Вы пишете пост в WordPress уже полчаса, пальцы летают, мысли льются. Отправляете в публикацию и… замечаете, что имя плагина набрали с ошибкой. Не в одном месте. Во всём тексте. А потом вспоминаете: вы писали это название так последние полгода в сотне других статей.

Открывать каждый пост руками и выискивать опечатки? Допустим, если их пять. А если пятьсот?

WordPress из коробки не даёт кнопки «найти и заменить» ни в редакторе, ни по всей базе. Но это решается, бесплатными плагинами и одним фрагментом кода. Без phpMyAdmin, без прямых SQL-запросов, без риска уронить сайт не той командой.

💡 Быстрый обзор:

  • Встройте поиск и замену прямо в редактор, плагин Advanced Editor Tools добавляет кнопку Find and Replace в визуальный редактор за 2 минуты
  • Замените текст по всей базе данных, Better Search Replace ищет и меняет строки во всех таблицах с предпросмотром и поддержкой сериализованных данных
  • Настройте правила автоматической замены, Real-Time Find and Replace подменяет текст «на лету» при выводе страницы, не трогая базу
  • Добавьте автоссылки по ключевым словам, PHP-функция в functions.php оборачивает заданные слова в ссылки во всех постах разом

На видео, наглядная демонстрация поиска и замены в контенте WordPress:

Поиск и замена текста в редакторе WordPress

В классическом редакторе WordPress нет кнопки «Найти и заменить», в отличие от Google Docs, Word и почти любого текстового процессора. В блочном редакторе Gutenberg её тоже нет. Но её можно добавить.

За это отвечает плагин Advanced Editor Tools (раньше назывался TinyMCE Advanced). Он расширяет панель инструментов визуального редактора, и одна из доступных кнопок как раз Find and Replace.

Кнопка поиска и замены в визуальном редакторе WordPress

Установка стандартная: «Плагины» → «Добавить новый» → поиск «Advanced Editor Tools» → «Установить» → «Активировать». После активации:

  • Перейдите в Настройки → Advanced Editor Tools
  • Найдите среди неиспользуемых кнопок Find and Replace
  • Перетащите её на панель редактора
  • Сохраните изменения

Готово. Теперь при редактировании любого поста в визуальном редакторе сверху появится кнопка поиска и замены. Вводите искомый текст, вводите замену, плагин подсвечивает совпадения, можно заменить по одному или сразу все.

Минус: работает только в рамках одного поста. Если нужно пройтись по сотне статей, нужен инструмент посерьёзнее.

Поиск и замена по всей базе данных, Better Search Replace

Когда ошибка размазана по десяткам или сотням записей, ручная правка каждого поста превращается в работу на неделю. На этот случай есть Better Search Replace, бесплатный плагин от WP Engine, который ищет и заменяет текст напрямую в базе данных WordPress.

Интерфейс поиска и замены Better Search Replace в WordPress

Возможности:

  • Поиск по всей базе или по выбранным таблицам (wp_posts, wp_postmeta и т.д.)
  • Поддержка сериализованных данных, плагин корректно обрабатывает массивы и объекты, не ломая их
  • Режим Dry Run, пробный прогон без внесения изменений; вы видите, сколько ячеек будет затронуто, и только потом решаете, применять замену или нет
  • Поддержка мультисайтов

Работает так: «Инструменты» → «Better Search Replace» → вводите искомую строку и строку замены → выбираете таблицы → запускаете Dry Run → смотрите результат → если всё верно, снимаете галку Dry Run и запускаете уже настоящую замену.

Перед любыми операциями с базой данных сделайте резервную копию. Better Search Replace не отменяет изменения, если ошиблись со строкой замены, восстановить данные можно только из бэкапа.

Плагин обновляется регулярно: версия 1.4.10 вышла в январе 2025, автор, команда WP Engine, 543 отзыва на WordPress.org со средней оценкой выше 4 звёзд. Активных установок, больше миллиона.

Автоматическая замена текста «на лету», Real-Time Find and Replace

Бывает, что нужно не разово поправить опечатку, а настроить постоянное правило: например, заменять обсценную лексику в комментариях, подменять рекламный плейсхолдер на код JavaScript или автоматически править название ребрендированного сервиса во всех существующих и будущих публикациях.

Для этого раньше использовали Word Replacer, но плагин закрыт и не обновлялся 12 лет. Актуальная замена, Real-Time Find and Replace.

Интерфейс правил замены Real-Time Find and Replace в WordPress

Принцип работы: плагин подменяет текст в момент вывода страницы, до того как она попадёт в браузер пользователя. База данных при этом не меняется, все правила живут в настройках плагина, и вы можете в любой момент отключить или изменить правило без последствий.

Что умеет бесплатная версия:

  • Замена текста и HTML-кода по точному совпадению
  • Поддержка регулярных выражений (regex), для сложных паттернов
  • Замена в темах и других плагинах без правки их файлов
  • Работает с AJAX-контентом и контентом, подгружаемым jQuery
  • 70 000+ активных установок, протестирован вплоть до WordPress 7.0

Pro-версия (пожизненная лицензия меньше $15) добавляет фильтры по типу записи, URL и рефереру, импорт/экспорт правил и возможность замены на админ-страницах.

Типичный сценарий: вы хотите, чтобы слово «компьютер» всегда становилось ссылкой на ваш партнёрский магазин. Создаёте правило: Find = компьютер, Replace = <a href="https://shop.example.com">компьютер</a>. Плагин применяет его ко всем постам, страницам и комментариям на лету.

Автоматические ссылки по ключевым словам через PHP

Если не хочется ставить отдельный плагин ради десятка ссылок, задачу решает фрагмент кода в functions.php темы. Он проходит по содержимому каждой записи, находит заданные слова и оборачивает их в ссылки.

Работаете с functions.php темы, используйте дочернюю тему, чтобы правки не слетели при обновлении. И сделайте бэкап файла перед редактированием.

PHP-код для автоматической вставки ссылок в WordPress

Добавьте в functions.php такой код:

1function techblog_auto_link_words( $text ) {
2 $replace = array(
3 'wordpress' => '<a href="https://wordpress.org">WordPress</a>',
4 'php' => '<a href="https://www.php.net">PHP</a>',
5 );
6 $text = str_replace( array_keys( $replace ), $replace, $text );
7 return $text;
8}
9add_filter( 'the_content', 'techblog_auto_link_words' );
10add_filter( 'the_excerpt', 'techblog_auto_link_words' );

Как это работает: функция str_replace ищет ключи массива $replace в тексте записи и подменяет их на значения (ссылки). Фильтры the_content и the_excerpt применяют замену к полному тексту поста и к цитате соответственно.

Массив $replace можно расширять: добавили новую пару 'ключ' => '<a href="...">анкор</a>', правило тут же заработало.

Ограничения: замена чувствительна к регистру, срабатывает на точное совпадение и не умеет исключать слова внутри тегов или атрибутов. Если в тексте уже была ссылка с таким же анкором, получится вложенная ссылка. Для сложных сценариев лучше взять Real-Time Find and Replace, описанный выше.

⁉️🤔 Частые вопросы

Можно ли найти и заменить текст в WordPress без плагинов?

Да, прямым SQL-запросом к базе данных. Команда выглядит примерно так: UPDATE wp_posts SET post_content = REPLACE(post_content, 'старое', 'новое'). Но этот метод не обрабатывает сериализованные данные, требует доступа к phpMyAdmin или WP-CLI и не даёт предпросмотра. Ошибка в запросе может повредить базу. Better Search Replace делает то же самое, но безопаснее.

Что делать, если после замены сайт сломался?

Первое, не паниковать. Если включили Dry Run перед заменой, вы знаете, какие именно таблицы были затронуты. Если нет, восстановите базу из бэкапа (вы же сделали бэкап перед операцией?). Better Search Replace не создаёт свои резервные копии в бесплатной версии, поэтому бэкап критичен.

Real-Time Find and Replace замедляет сайт?

При разумном количестве правил (до 50), нет. Плагин выполняет замену до вывода страницы, на серверной стороне, без дополнительных запросов к базе. Если используете кеширование, влияние ещё меньше. Проблемы могут возникнуть только при сложных regex-правилах с ошибками в синтаксисе.

Чем Real-Time Find and Replace отличается от Better Search Replace?

Better Search Replace меняет данные в базе, изменения навсегда. Real-Time Find and Replace подменяет текст при выводе, база остаётся нетронутой. Первый, для разовых правок (опечатки, смена домена). Второй, для постоянных правил (цензура, рекламные вставки, автоссылки). Они не конкуренты, а инструменты для разных задач.

Какой метод выбрать для замены домена при переезде сайта?

Только Better Search Replace. Замена домена, это правка тысяч URL в базе данных (в контенте, мета-полях, настройках). Real-Time Find and Replace не подходит: он не меняет данные физически, а при смене домена нужна именно запись в базу. Плюс Better Search Replace корректно обрабатывает сериализованные массивы, где длина строки закодирована вместе со значением.

Что ставить под вашу задачу

Задача определяет инструмент, универсального «найти и заменить» в WordPress нет, но под каждый сценарий есть готовое решение:

  • Нужно поправить пару фраз в одном черновике, Advanced Editor Tools, кнопка Find and Replace в редакторе
  • Опечатка разъехалась по сотне постов, Better Search Replace, один запрос по базе с предпросмотром
  • Хотите, чтобы клиентский логотип автоматически оборачивался в ссылку на сайт клиента во всех материалах, Real-Time Find and Replace, правило на лету
  • Нужно расставить ссылки на десяток ключевых слов без установки плагинов, PHP-сниппет в functions.php, 10 строк кода

Перед любой заменой, бэкап. Перед заменой в базе, Dry Run. Эти две привычки экономят дни восстановления.