О web-разработке
и даже немного больше...

SQL-запросы для смены домена в WordPress

Одна из самых частых причин смены домена сайта – это перенос его с локального сервера на боевой. Процесс переноса сайта как правило для разных движков отличается, для некоторых движков достаточно править файлы конфигурации, чтобы все ссылки на сайте обновились. Что касается сайтов, реализованных на WordPress то здесь так же необходимо произвести поиск и замену URL-адресов в базе данных.

Здесь мы рассмотрим пример замены URL-адресов в базе данных, посредством нескольких ключевых запросов. Стоит сразу условиться, что база данных уже импортирована на рабочий сервер, и у нас под рукой есть доступ к консоли SQL. В большинстве случаев запросы проще выполнить через утилиту phpMyAdmin.

Подготовка SQL-запросов

Не торопитесь копировать и выполнять запросы сразу же в базу данных. Для начала их следует вставить в какой-либо текстовый редактор, и сформировать их правильным образом. Для начала давайте условимся, что у нас есть два домена old-site.com и new-site.com, соответственно первый домен – это старый домен, второй – тот на который следует выполнить замену.

Соответственно есть несколько таблиц, в которых следует выполнить замену.

UPDATE wp_options SET option_value = REPLACE(option_value, 'http://old-site.com', 'https://new-site.com') WHERE option_name = 'home' OR option_name = 'siteurl';
UPDATE wp_posts SET post_content = REPLACE (post_content, 'http://old-site.com', 'https://new-site.com');
UPDATE wp_posts SET guid = REPLACE (guid, 'http://old-site.com', 'https://new-site.com');
UPDATE wp_postmeta SET meta_value = REPLACE (meta_value, 'http://old-site.com','https://new-site.com');
UPDATE wp_comments SET comment_content = REPLACE (comment_content, 'http://old-site.com', 'https://new-site.com');
UPDATE wp_comments SET comment_author_url = REPLACE (comment_author_url, 'http://old-site.com', 'https://new-site.com');

Как вы можете заметить в этом процессе задействовано несколько таблиц.

  • wp_options – таблица с различными параметрами (нужны параметры home и siteurl);
  • wp_posts – таблица с постами, там ссылки могут быть непосредственно в самом тексте;
  • wp_postmeta – мета-поля для постов, по сути это связанные таблицы с wp_posts;
  • wp_comments – таблица с комментариями к постам, замена в случае если были какие-либо внутренние ссылки.

Ключевые моменты, на которые следует обратить внимание.
Во-первых, это префикс таблиц – в моём примере префикс таблиц указан как wp_, это значение по умолчанию, однако не исключено что у вас он может отличаться. Во-вторых, обратите внимание на написание доменов, а именно протоколы http и https, чтобы замена выполнилась корректно. Иногда бывают случаи, что ссылки на сайте встречаются как с http-протоколом, так и https. В этом случае запросы для замены ссылок можно выполнить дважды для каждого вида ссылок отдельно.

Опубликован: 02.03.2021 г.

См. также:

Как подсчитать количество записей по месяцам в MySQL?
Работа с базой данных в WordPress
Как изменить тип таблиц в MySQL?
Изменение кодировки таблиц в базе MySQL
Фильтрация по полю DateTime в MySQL
Меняем пароль root в MySQL 5.7
Исправление ошибок в базе MySQL
Восстановление пароля root в MySQL

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Комментарии
  • Загрузка...
Друзья сайта