Пятница, 29 марта, 2024

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

Софт и игры
Вячеслав Питель
Вячеслав Питель
Редактор сайта, опыт работы 10 лет, пишу на тему гаджетов, новостей в мире технологий, игр и софта admin@uspei.com, VK, OK, сот. 89132476241

Здравствуйте, уважаемые читатели сайта 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')

Свидетельство о регистрации СМИ в РКН: ЭЛ № ФС77-83818 от 29.08.2022

Оставьте комментарий

Пожалуйста, введите Ваш комментарий
Пожалуйста, введите Ваше имя здесь

Гаджеты

Как выбрать Pod-систему

Если вы решили перейти с сигарет на вейпинг и выбираете свою первую Pod-систему, есть несколько важных аспектов, на которые...

Также на эту тему