Правильная замена в базе с помощью Search Replace DB
Это одна из самых базовых вещей, о которых Вы должны знать. Интернет пестрит примерами, руководствами, когда для замены чего либо в базе — советуют открыть phpMyAdmin и делать эту замену напрямую или через регулярки. Это неправильно и приводит к потере информации.
Таким же горе-способом рекомендуют менять адреса при переносе сайта в SQL бекапе базы. Часть информации просто потеряется, например, виджеты, настройки многих плагинов, и т.д.
Почему так происходит?
WordPress часть информации хранить в сериализованных массивах, а они зависят от длинны строки. В случае, если при замене напрямую или через поиск и замену в SQL файле Вы производите замену и фраза, на которую Вы меняете больше по количеству символов — этот массив больше не прочитается.
Например:
смена протокола http:// → https://
— это плюс один символ
смена домена http://site.ru → http://newsite.ru
— плюс 3 символа
Как правильно сделать замену?
Есть замечательная утилита Search Replace DB, которая поможет сделать замену не нарушив эти самые сериализованные массивы. Это один из первых инструментов, который должен появится у начинающего WordPress разработчика.
Для чего мы её используем?
- Перенос проекта с локального на рабочий сервер
- Смена домена у сайта
- Смена протокола на http на https
- Смена адресов страниц
- Смена вообще чего угодно в базе 🙂
Инструкция
Внимание! Перед этим шагом обязательно сделайте бекап!
- Скачиваем скрипт Search Replace DB, закачиваем все в секретную папку в корень сайта, например
search-replace-secret-42
- Файл
wp-config.php
должен быть уже с правильными доступами к базе, в которой будем делать замену - Открываем наш скрипт в браузере http://вашсайт.ru/search-replace-secret-42/
- Заполняем поля в первой строчке
replace – что мы ищем для замены (старый домен)
with – на что мы будем заменять (новый домен)
в большинстве случаев этого достаточно, жмем Dry run, чтобы проверить замену - Проверяем результат ниже. Если замена производится правильно, жмем Live Run и проверяем замену на нашем сайте.
- Обязательно! Удаляем папку со скриптом после замены.
Можно использовать регулярные выражения, можно делать замену только по определенным колонкам, таблицам. Сам скрипт достаточно простой, но позволяет без потерь совершать замены в базе.
Если у Вас настроена утилита WP-CLI, позволяющая работать с WP через командную строку, воспользуйтесь следующей командой:
wp search-replace 'olddomain.com' 'newdomain.ru'
Не будет лишним еще раз напомнить про бекапы, не забывайте. На этом все.
Также читайте статью про лучший плагин для переноса всех файлов сайта и базы WordPress All in One WP Migration.
Нажмите, пожалуйста, на одну из кнопок, чтобы узнать понравилась статья или нет.
Search Replace DB WordPress – работа с изменениями в базе данных
Без плагина WordSmall
После перехода сайта на защищенное соединение https или переезда на новый домен, нужно в базе данных произвести поиск и замену старой информации на новую. Для этой операции на WordPress есть множество специальных плагинов (один из них). А также можно использовать SQL-запросы или прям напрямую, через блокнот менять данные.
Все это может оказаться не подходящим, а последний вариант – так совсем некорректным. Но, благо есть другие решения, менее сложные и корректные по замене данных. Речь идет о скрипте search replace db, который дружит с различными CMS, в том числе и с WordPress. И сейчас на примере я покажу, точнее опишу, как им пользоваться.
Как пользоваться Search Replace DB
Изначально, как правило, в любом масштабном действии, делаем резервную копию сайта. У вас всегда должен быть свежий бэкап всего сайта на разные ситуации. А дальше переходим к инструкции.
Очень важно! После того как вы закончите работу со скриптом, обязательно удалите его с сервера. К примеру, вы сделали замену старого домена на новый или изменили протокол, и сразу после этих действий удаляйте скрипт.
Еще следует подчеркнуть! На момент написания этого обзора, актуальная версия скрипта v4. 1.2. Она была протестирована с версией PHP7.3 +. По словам разработчика, скрипт будет работать и с ранними версиями PHP. Но это на ваш страх и риск. Если есть возможность обновить PHP – сделайте это. Если у вас совсем старая версия PHP, тогда скачайте скрипт ранних версий. Его можно получить при заполнении формы на этой странице. На почту вам придет письмо со ссылками на актуальную версию и предыдущею.
- Скачиваем скрипт Search Replace DB.
- Разархивируем архив и переименовываем папку со скриптов во что-то лаконичное (пример: wbd).
- Загружаем полученную папку в корневой каталог на хостинге (это там, где папка wp-content). Не в нее, а там, где она находится.
- Переходим по адресу: http://вашсайт.ру/wbd (wbd — это название папки, где лежит скрипт).
Перед нами откроется страница с параметрами скрипта.
Первый блок – SearchReplace
В поле replace вводится данные, которые мы ищем. В поле
К примеру, мы меняем протокол. Значит, в первое поле пишем http://bomin.ru, а во второе поле — https://bomin.ru
В таком порядке прописываем и тогда, когда мы изменяем домен. Разве что можно убрать протокол, если он одинаковый.
Второй блок — Database Details
Данные для подключения к вашей базе данных. Обычно скрипт сам подставляет данные для подключения с БД. Если этого не случилось (возможно, из-за версии PHP или по другим причинам), то пропишите вручную. После чего нажмите кнопку
Третий блок — Which Tables?
Здесь можно выбирать, в каких именно таблицах производить поиск. К примеру, при смене http или домена, выбираем All tables, то есть по всем таблицам.
Четвертый блок — Let’s go
После того как вы заполните поля (что искать, на что менять), подключитесь к БД, нажмите на кнопку Do a safe test run (сделать тестовый безопасный прогон). Если он не выдаст никакой ошибки, тогда жмем на кнопку Search and Replace
После проделанной операции нажмите на кнопку delete me (удалить меня). И даже после нажатия удаления, зайдите на хостинг и убедитесь, что папка со скриптом Search Replace DB удалена. Если это не так, удалите ее вручную.
Search Replace DB v 3.1.0
В предыдущих версиях скрипта панель управления немного отличается. По сути, все делается также само, только нужно будет нажимать кнопку live run (поиск и замена), а dry run – пробный поиск.
Автор, он же Андрей, он же Admin, он же WordSmall
Лентяй-любитель, окончил высшую школу безделья с многочисленными знаками отличия. Создатель этого небольшого «чудо-блога» о еще более «чудном» контенте.
Подписаться на новые статьи
Better Search Replace — Плагин WordPress
- Детали
- отзывов
- Монтаж
- Развитие
Опора
При перемещении вашего сайта WordPress на новый домен или сервер вы, вероятно, столкнетесь с необходимостью запуска поиска/замены в базе данных, чтобы все работало правильно. К счастью, для этой задачи доступно несколько плагинов, однако все они по-разному подходят к нескольким ключевым функциям. Этот плагин объединяет лучшие функции этих плагинов, объединяя следующие функции в одном простом плагине:
- Поддержка сериализации для всех таблиц
Возможность выбора конкретных таблиц- Возможность запустить «пробный прогон», чтобы увидеть, сколько полей будет обновлено
- Нет требований к серверу, кроме работающей установки WordPress
- Многосайтовая поддержка WordPress
Функции для экономии времени доступны в версии Pro:
- Посмотреть, что именно изменилось во время поиска/замены
- Резервное копирование и импорт базы данных при выполнении поиска/замены
- Приоритетная поддержка по электронной почте от разработчика плагина
- Сохранение или загрузка пользовательских профилей для быстрого повторения поиска/замены в будущем
Поддержка и обновления в течение 1 года Узнайте больше о Better Search Replace Pro
Функциональность поиска и замены в значительной степени основана на межсоединении / это отличный скрипт Search Replace DB с открытым исходным кодом, модифицированный для использования собственных функций базы данных WordPress для обеспечения совместимости.
Поддерживаемые языки
- Английский
- Французский
- немецкий
- Испанский
Хотите внести свой вклад?
Не стесняйтесь открывать проблему или отправлять запрос на вытягивание на GitHub.
- Страница Better Search Replace добавлена в меню «Инструменты»
- После пробного запуска поиска/замены.
Установите Better Search Замените, как если бы вы устанавливали любой другой плагин WordPress.
Метод панели инструментов:
- Войдите в систему администратора WordPress и перейдите в раздел Плагины -> Добавить новый
- Введите «Лучший поиск, замена» в строке поиска и выберите этот плагин
- Нажмите «Установить», а затем «Активировать плагин».
Метод загрузки:
- Разархивируйте плагин и загрузите папку «better-search-replace» в каталог «wp-content/plugins»
- Активируйте плагин через меню Плагины в WordPress
Использование улучшенного поиска Заменить
После активации Better Search Replace добавит страницу на страницу меню «Инструменты» в панели администратора WordPress.
Поддерживается ли мой хост?
Да! Этот плагин должен быть совместим с любым хостом.
Могу ли я повредить свой сайт с помощью этого плагина?
Да! Ввод неправильной строки поиска или замены может привести к повреждению базы данных. Из-за этого всегда рекомендуется иметь резервную копию вашей базы данных перед использованием этого плагина.
Как это работает на WordPress Multisite?
При запуске этого плагина в мультисайтовой установке WordPress он будет загружен и виден только сетевым администраторам. Сетевые администраторы могут перейти на панель управления любого дочернего сайта, чтобы выполнить поиск/замену только для таблиц этого дочернего сайта, или перейти на панель управления основного/базового сайта, чтобы выполнить поиск/замену во всех таблицах.
Как я могу использовать этот плагин при смене URL-адресов?
Если вы перемещаете свой сайт с одного сервера на другой и меняете URL-адрес своей установки WordPress, описанный ниже подход позволяет вам сделать это легко, не затрагивая старый сайт:
- Сделайте резервную копию базы данных на вашем текущем сайте
- Установите базу данных на новый хост
- На новом хосте определите новый URL сайта в файле
wp-config. php
, как показано здесь - Войдите в систему с новым URL-адресом администратора и запустите Better Search Замените старый URL-адрес сайта на новый URL-адрес сайта
- Удалите константу site_url, которую вы добавили в
wp-config.php
. Вам также может понадобиться повторно сгенерировать ваш .htaccess, перейдя в «Настройки» -> «Постоянные ссылки» и сохранив настройки.
Дополнительную информацию о перемещении WordPress можно найти здесь.
Простота в использовании и эффективность. Отличный плагин
Иногда нам просто нужно немного простоты 🙁
Пробую первый раз. это очень хороший плагин для замены контента в один клик на моем сайте.
У меня всегда были проблемы с многократными попытками заставить изменения вступить в силу с помощью этого плагина в прошлом. Но после 10+ попыток на веб-сайте сегодня он больше не работает. Сначала он не смог найти никаких изменений, которые можно было бы внести, затем, когда он нашел и сказал, что они завершены, никаких изменений не произошло. Не тратьте свое время.
Хорошая работа по уничтожению плагина с безумной жадностью, которая выходит за рамки EA Games, вы могли бы сделать это флажком в 19-20 долларов США, но 100 долларов США за самый дешевый план сайта только для предварительного просмотра изменений И без пожизненных обновлений? Святая корова, ты с ума сошел
очень жаль, идея с открытым исходным кодом ушла. Бесплатная версия плагина теперь бесполезна. Чтобы вернуть старые функции теперь нужно платить большие деньги 🙁
Прочитать все 490 отзывов
«Лучший поиск замены» — это программное обеспечение с открытым исходным кодом. Следующие люди внесли свой вклад в этот плагин.
Авторы
- WP двигатель
- Вкусные мозги
- Мэтт Шоу
1.4.2 — 10 января 2023 г.
- Безопасность: произвольные шаблоны вкладок в каталоге
templates
больше нельзя загружать с помощью параметра запроса.
1.4.1 — 25 июля 2022 г.
- Безопасность: существование выбранных таблиц теперь подтверждается перед обработкой запроса
1.4 — 7 апреля 2022 г.
- Новое: Better Search Replace имеет совершенно новый пользовательский интерфейс
- Улучшение: возможность по умолчанию, необходимая для использования плагина, изменилась с «install_plugins» на «manage_options» для совместимости с DISALLOW_FILE_MODS
1.3.4 — 7 декабря 2020 г.
- Улучшение: совместимость с WordPress 5.6 и PHP 8
- Исправление: строки, которые были сериализованы дважды, отображались как ложноположительные
1.3.3 — 26 февраля 2019 г.
- Исправление: Некоторые специальные символы мешают поиску/замене
- Безопасность: передать имена файлов шаблонов через
sanitize_file_name()
- Безопасность: проверять одноразовый номер при загрузке диагностической информации
1.
3.2 — 3 января 2018 г.- Исправление: в некоторых средах выполнялся поиск только одной таблицы (props @Ov3rfly)
- Улучшение: Обновить текст на боковой панели
1.3.1 — 14 сентября 2017 г.
- Безопасность: проверьте, сериализованы ли данные перед их десериализацией
- Улучшение: увеличен размер выбора таблицы
1.3 — 10 ноября 2016 г.
- Улучшение: обновлена боковая панель и добавлена скидка на профессиональную версию
- Исправлено: устаревшие ссылки на старый веб-сайт
- Исправление: предотвращение запросов на недопустимые вкладки
1.2.10 — 2 июня 2016 г.
- Исправление: CSS не загружается на странице сведений
1.2.9 — 8 декабря 2015 г.
- Исправление: ошибка с поиском без учета регистра в сериализованных объектах
- Исправлено: ошибка с ранним пропуском из-за отсутствия первичного ключа
1.
2.8 — 25 ноября 2015 г.- Исправление: ошибка с деталями отчета
1.2.7 – 24 ноября 2015 г.
- Исправлено: непереводимая строка
- Улучшение: Проверьте BSR_PATH вместо ABSPATH, чтобы быть последовательным
- Проверено с 4.4
1.2.6
- Удален неиспользуемый код/небольшая очистка
1.2.5
- Улучшенная информация и стили индикатора выполнения
- Небольшая уборка
1.2.4
- Добавлено уведомление «Настройки сохранены» при сохранении настроек
- Исправлена ошибка, из-за которой wp_magic_quotes мешал некоторым строкам поиска
1.2.3
- Исправлена ошибка с поиском обратной косой черты
- Исправлена потенциальная ошибка с получением таблиц в больших мультисайтах
- Исправлено потенциальное уведомление в append_report
- Улучшена обработка отсутствующих первичных ключей
1.
2.2- Исправлен конфликт AJAX с WooCommerce
- Исправлено несколько проблем с переводами
- Изменена «Информация о системе» для использования get_locale() вместо константы WP_LANG
- Обновлен немецкий перевод (реквизит @Linus Ziegenhagen)
1.2.1
- Исправлена незначительная проблема с отображением индикатора выполнения
- Обновлен файл перевода
1.2
- Переключено на массовую обработку AJAX для поиска/замены
- Уменьшен минимальный «Максимальный размер страницы» до 1000
- Добавлена вкладка «Справка» с системной информацией для облегчения устранения неполадок
1.1.1
- Добавлена возможность изменять максимальный размер страницы
- Уменьшен размер страницы по умолчанию, чтобы предотвратить проблему с белым экраном в некоторых средах
1.1
- Добавлена возможность изменять возможности, необходимые для использования плагина
- Мелкие исправления и исправления перевода
1.
0.6- Добавлены размеры таблиц в список таблиц базы данных
- Добавлен французский перевод (реквизит @Jean Philippe)
1.0.5
- Добавлена поддержка поиска без учета регистра
- Добавлен немецкий перевод (реквизит @Linus Ziegenhagen)
1.0.4
- Возможные исправления безопасности
1.0.3
- Исправлена проблема с поиском специальных символов, таких как «\»
- Исправлена ошибка с заменой некоторых объектов
1.0.2
- Исправлены непереводимые строки на кнопке отправки и странице подменю.
1.0.1
- Исправлена проблема с загрузкой переводов и добавлен испанский перевод (реквизит Эдуардо Лареки)
- Исправлена ошибка с отчетом о времени
- Обновлено для использования «Пробного прогона» по умолчанию
- Добавлена поддержка WordPress Multisite (дополнительную информацию см. в разделе часто задаваемых вопросов)
1.
0- Первый выпуск
Мета
- Версия: 1.4.2
- Последнее обновление: 3 месяца назад
- Активные установки: 1+ миллион
- Версия WordPress: 3.0.1 или выше
- Протестировано до: 6.1.1
- Языки:
каталанский, китайский (Китай), китайский (Тайвань), чешский, датский, голландский, голландский (Бельгия), английский (Австралия), английский (Канада), английский (Новая Зеландия), английский (Южная Африка), английский ( Великобритания), английский (США), французский (Канада), французский (Франция), галисийский, немецкий, итальянский, японский, литовский, португальский (Бразилия), русский, испанский (Колумбия), испанский (Эквадор), испанский (Испания), испанский (Венесуэла) и шведский.
Перевести на ваш язык
- Теги:
база данныхпоиск и заменапоиск заменитьобновить URL-адреса
- Расширенный вид
Служба поддержки
Проблемы, решенные за последние два месяца:
7 из 9
Посмотреть форум поддержки
Скрипт поиска и замены базы данных в PHP
Search Replace DB версии 4 — это мощный инструмент разработчика, который позволяет быстро выполнять поиск в базе данных из веб-интерфейса, когда невозможно использовать инструменты командной строки.
Прежде чем мы двинемся дальше. Мы знаем, что эта страница привлекает большое внимание со всего мира, так как это полезный инструмент для многих. Мы хотели бы сказать, что мы поддерживаем Украину. У нас много друзей из России и из Украины. Мы верим в прозрачность и свободу. Российское правительство зашло слишком далеко на опасный шаг, который вызывает трагедию по всей Украине и лишения простых россиян. Пожалуйста, работайте над тем, чтобы принести современную, прозрачную демократию в Россию и свободу в Украину. Чтобы помочь, рассмотрите возможность сделать пожертвование в одну из многих честных благотворительных организаций, поддерживающих детей и народ Украины.
Кредит Ольге Субач, изображение найдено на Unsplash.Чтобы узнать, как мы используем ваши данные, ознакомьтесь с нашей политикой конфиденциальности.
Загрузите сценарий по ссылке, полученной по электронной почте, и установите его в секретную папку с запутанным именем, если он используется на общедоступном сервере. Ваш сервер также не должен быть настроен на предоставление списков каталогов, если это общедоступный сервер.
Не устанавливайте Поиск Замените БД в корневую папку, иначе вы рискуете получить всевозможные потенциальные проблемы. Просто не надо. Он должен работать в своей собственной папке и, в идеале, в той, которую нельзя легко угадать.
Чтобы узнать, как вы можете использовать этот инструмент для облегчения миграции, ознакомьтесь с нашей статьей о миграции WordPress или посетите статью WP Tuts+, в которой упоминается этот скрипт.
Если у вас есть какие-либо сомнения относительно того, как использовать этот автономный скрипт, рассмотрите возможность привлечения эксперта. Это действительно мощный фрагмент кода, который при неправильном использовании может повредить вашу базу данных без возможности восстановления. Если вам нужна помощь, обратитесь к кому-нибудь вроде нас, например, или к любому из других отличных парней, перечисленных на CodePoet.
Лицензия
Код предоставляется под лицензией GPL V3 и является полностью открытым исходным кодом. Имейте в виду, что это означает, что люди могут изменить этот код и предложить его, и что другие версии могут быть хуже… или лучше. Это код для разработчиков, созданный разработчиками, и вы должны использовать код только из источников, которым вы доверяете.
Часто задаваемые вопросы
Куда установить распакованные файлы?
В каталоге на вашем веб-сервере. Это может быть папка, защищенная httpauth, если это общедоступный веб-сервер.
Должен ли я платить?
Нет, это бесплатно с открытым исходным кодом, и вы можете найти его на GitHub. Вы также можете делать такие вещи, как отправлять копии своим друзьям или использовать код в других проектах. Полная лицензия включена в программное обеспечение. Мы делаем по умолчанию путь, позволяющий вам сделать пожертвование, но если вы ограничены и работаете в одной из тех корпораций, где получение одобрения на 5 долларов не стоит хлопот, вы можете воспользоваться. Просто помните нас, если сценарий сделает вас лучше и принесет вам повышение!
Я слышал, что этот сценарий небезопасен. Это действительно так?
Уже не так опасно, как раньше! Для удобства мы подобрали переменные конфигурации WP для предварительного заполнения сведений о базе данных. Проблема в том, что оказывается, что люди небрежны и оставят скрипт лежать на своем рабочем сервере. Так что пришлось уйти. Удобен для установки разработчика, кошмар на рабочем сервере. Это по-прежнему мощный инструмент, и он дает хакеру доступ, чтобы попытаться взломать ваши учетные данные базы данных, поэтому очень важно, чтобы вы не просто оставляли скрипт лежать без дела, но если вы используете его на рабочих серверах, и вы немного рассеяны, тогда вас не будут наказывать за то, что вас так легко взломают.
Я получаю сообщение об ошибке 2: Класс __PHP_Incomplete_Class не имеет десериализатора
Это распространенная ошибка, которая обычно возникает у пользователей плагинов Yoast, а также некоторых других.