Как на WP массово сменить абсолютные ссылки на относительные?

Maxim-KL
На сайте с 26.01.2011
Offline
350
2433

Переношу один клиентский сайт на https и возникла проблема сменить абсолютные ссылки на относительные (http://site.ru на //site.ru). Проблема в том что на сайте вагон абсолютных ссылок, в новостях категориях и еще много где я даже не нашел. Сменить все вручную по моим скромным подсчетам займет более 40 человеко часов, согласитесь это слишком много...

Как можно данный процесс автоматизировать? Может есть какие плагины или поможет запрос в БД?

Заранее очень благодарен вашим советам...:popcorn:

Мои услуги по прогонам: ✅Качественный ручной статейный прогон по базе сайтов с ИКС10+ (maximgroups.net/progon-statejnyj) ✅Прогон Максимум - Все включено, 300+ качественных ссылок (maximgroups.net/progon-maksimum)
TA
На сайте с 12.06.2009
Offline
116
TiA
#1

Maxim-KL, самый простой и очевидный способ - это SQL запрос по таблице с записями:


UPDATE wp_posts SET post_content = REPLACE(post_content, 'http://сайт', '//сайт');

Перед его выполнением нужно обязательно сделать резервную копию БД.

Профессиональная верстка и разработка сайтов на WordPress (http://www.maultalk.com/topic139110s0.html)
S
На сайте с 30.09.2016
Offline
469
#2
Maxim-KL:
Переношу один клиентский сайт на https и возникла проблема сменить абсолютные ссылки на относительные (http://site.ru на //site.ru)

А может быть, всё-таки на / ? Если мы говорим об относительных ссылках. В любом случае, //site.ru - это криво.

Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.
Samail
На сайте с 10.05.2007
Offline
361
#3
Sitealert:
А может быть, всё-таки на / ? Если мы говорим об относительных ссылках. В любом случае, //site.ru - это криво.

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

Maxim-KL
На сайте с 26.01.2011
Offline
350
#4
Sitealert:
А может быть, всё-таки на / ? Если мы говорим об относительных ссылках. В любом случае, //site.ru - это криво.

Я так же думал поначалу, но вот сколько инфы перелопатил везде именно //site.ru. Но почему и сам не понимаю.

TiA, Огромное спасибо, и этого запроса будет достаточно?

А то я здесь накопал такое:


UPDATE wp_options SET option_value = REPLACE(option_value, 'http://site.ru/', 'https://site.ru/') WHERE option_name = 'home' OR option_name = 'siteurl';

UPDATE wp_posts SET post_content = REPLACE (post_content, 'http://site.ru/', 'https://site.ru/');
UPDATE wp_posts SET guid = REPLACE (guid, 'http://site.ru/', 'https://site.ru/') WHERE post_type = 'attachment';

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

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

Но как на меня это уже перебор...

TA
На сайте с 12.06.2009
Offline
116
TiA
#5
Maxim-KL:
и этого запроса будет достаточно?

Этот запрос поменяет все ссылки в содержимом записей, страниц и других элементов, которые используют поле post_content для хранение данных.

Maxim-KL:
UPDATE wp_options SET option_value = REPLACE(option_value, 'http://site.ru/', 'https://site.ru/') WHERE option_name = 'home' OR option_name = 'siteurl';

Этот запрос часто используют, если требуется сменить адрес сайта. Он чаще всего меняется через админку, но можно и так.

Maxim-KL:
UPDATE wp_posts SET post_content = REPLACE (post_content, 'http://site.ru/', 'https://site.ru/');
UPDATE wp_posts SET guid = REPLACE (guid, 'http://site.ru/', 'https://site.ru/') WHERE post_type = 'attachment';

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

Maxim-KL:
UPDATE wp_postmeta SET meta_value = REPLACE (meta_value, 'http://site.ru/','https://site.ru/');

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

Maxim-KL:
UPDATE wp_comments SET comment_content = REPLACE (comment_content, 'http://site.ru/', 'https://site.ru/');
UPDATE wp_comments SET comment_author_url = REPLACE (comment_author_url, 'http://site.ru/', 'https://site.ru/');

Это замена адреса в комментариях. Обычно этого не требуется, но можно и это выполнить.

Maxim-KL
На сайте с 26.01.2011
Offline
350
#6

TiA, Вы просто кладезь знаний, огромное спасибо! За пару минут расставили мне все по полочкам, над чем я замарачивался.

Maxim-KL
На сайте с 26.01.2011
Offline
350
#7

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

Svetoch1980
На сайте с 06.06.2008
Offline
107
#8

Поиском в phpMyAdmin, в соответствующих полях соответствующих таблиц, поискать "http://" как вариант?

Или через Xenu's Link Sleuth прогнать сайт.

Внедрение CRM и RPA. Автоматизация бизнес-процессов. Интеграции.
TA
На сайте с 12.06.2009
Offline
116
TiA
#9
Maxim-KL:
Как бы все изменил... А может есть какой способ проверить изменил все что надо или нет?

Самый простой и надежный способ - открыть несколько десятков страниц и вручную все проверить.

Maxim-KL
На сайте с 26.01.2011
Offline
350
#10
Svetoch1980:
"http://" как вариант?

Как вариант можно попробовать)

TiA:
вручную все проверить.

Страниц слишком много и на них такой бардак... что можно мозгами...

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий