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



Здравствуйте, уважаемые читатели сайта Uspei.com. Довольно часто сталкиваюсь с необходимостью внесения каких-либо изменений в тексты (о seo-оптимизиации текстов тут) либо при копировании сайта, например, при создании поддомена для регионального филиала компании клиента требуется сменить регион в домене. В общем много разных случаев и, думаю, у вас эти случаи тоже есть.

Все делают это по-разному - я, например, когда-то делал это вручную на самом сайте (да,да)), кто-то вносит изменения вручную в базе данных.

В настоящее время у меня мания все упрощать и автоматизировать. Это экономит много времени и сил.

К оглавлению ↑

Основные запросы SQL для смены домена или данных

У названия таблиц базы данных WordPress есть префиксы. По умолчанию это wp_, у вас префикс может быть абсолютно любым content_. Префиксы меняют для безопасности сайта или по другим причинам, но если вы ничего не меняли, то он по любому будет wp_.
Всего основных запроса SQL для смены домена или данных два, ну можно добавить и третий. Итак, старый домен - http://old.site.ru новый домен - https://new.site.ru.

UPDATE wp_options SET option_value = REPLACE(option_value, 'http://old.site.ru', 'http://new.site.ru') WHERE option_name = 'home' OR option_name = 'siteurl'; 
UPDATE wp_posts SET post_content = REPLACE (post_content, 'http://old.site.ru', 'http://new.site.ru');
UPDATE wp_postmeta SET meta_value = REPLACE (meta_value, 'http://old.site.ru','http://new.site.ru');

Вам нужно просто скопировать весь этот код, зайти в phpMyAdmin, кликнуть на вкладку SQL, вставить код в поле и нажать "вперед".

Замена данных путем sql-запросов

Давайте подробней разберем каждый из запросов.

К оглавлению ↑

Замена абсолютного url сайта в настройках

У WordPress в базе данных в таблице wp_options хранится абсолютный URL сайта (подробнее о структуре url). Если их не изменить, то потом у вас будут постоянные проблемы в виде перехода на старый адрес сайта при кликах по ссылкам.

UPDATE wp_options SET option_value = REPLACE(option_value, 'http://old.site.ru', 'http://new.site.ru') WHERE option_name = 'home' OR option_name = 'siteurl';
К оглавлению ↑

Замена всех ссылок и изображений в самих постах

Второй запрос меняет адреса всех ссылок и изображений в самих постах WordPress.

UPDATE wp_posts SET post_content = REPLACE (post_content, 'http://old.site.ru', 'http://new.site.ru');

Значения произвольных полей постов

На всякий случай можно сделать и этот запрос.

UPDATE wp_postmeta SET meta_value = REPLACE (meta_value, 'http://old.site.ru','http://new.site.ru');

Замена ссылок в комментариях

Иногда бывает, что вы сами или пользователи ставят ссылки на отдельные внутренние страницы или статьи вашего сайта значит их нужно заменить и для этого тоже есть свой SQL-запрос.


UPDATE wp_comments SET comment_content = REPLACE (comment_content, 'http://old.site.ru', 'https://new.site.ru');
UPDATE wp_comments SET comment_author_url = REPLACE (comment_author_url, 'http://old.site.ru', 'https://new.site.ru');

Важно: если у вас домен состоит из символов кириллицы (например, блог.рф), то название домена в SQL-запросах нужно вводить в формате Punycode, то есть именно той кракозяброй, которую вы замечали, когда вводили раньше свой домен куда-нибудь.

Например, у вас сайт блог.рф и вам нужно перенести на него сайт со старого домена. Название вашего домена в формате Punycode будет выглядеть так: xn--b1aedoqcfcd1k.ru. В таком случае, вам необходимо вводить SQL-запрос:

UPDATE wp_posts SET guid = REPLACE(guid, 'http://old.site.ru','http://xn--b1aedoqcfcd1k.ru')

0

До встречи! Успевайте всё и всегда на страницах блога Uspei.com

Плюсануть
Поделиться
Класснуть
Линкануть
Запинить

Буду благодарен, если поделитесь новостью в соцсетях


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

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