Правильные запросы поиска и замены для изменения URL-адресов в базе данных WordPress?


Разработали сайт на производственной площадке с использованием временного адреса (http://IP-adddress).

Теперь пришло время выходить в эфир. Однажды, много лет назад, я успешно использовал phpMyAdmin и выполнил поиск/замену, но мне интересно, по-прежнему ли это "лучший" способ.

Будут ли они по-прежнему работать нормально? Сайт находится в WordPress 3.0.1.

update wp_options set option_value=replace(option_value,'OLD URL','NEW URL') where option_value like "%OLD URL%";    
update wp_posts SET guid=replace(guid, 'OLD URL','NEW URL');
update wp_posts SET post_excerpt=replace(post_excerpt, 'OLD URL','NEW URL');
update wp_posts SET post_content=replace(post_content, 'OLD URL','NEW URL');    
update wp_postmeta SET meta_value=replace(meta_value, 'OLD URL','NEW URL');

Я прочитал здесь несколько связанных сообщений, но ни одного с реальными запросами.

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

И эта тема о переход от разработки к производству в нем много информации, но:

  1. большая часть этого выше моего понимания, и
  2. в списке нет запросов.

ТАЙЯ,

Майк

Author: Community, 2010-09-06

3 answers

Да, эти запросы все еще работают.

Это полное руководство: http://web-kreation.com/tutorials/migrating-a-wordpress-site-ftp-phpmyadmin-and-sql-queries/

 1
Author: sorich87, 2010-09-06 17:36:27

Это вызовет у вас некоторые проблемы:

update wp_options set option_value=replace(option_value,'OLD URL','NEW URL') where option_value like "%OLD URL%";

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

Возможно, вам захочется просто изменить параметры "siteurl" и "home" в wp_options по отдельности, затем измените свои виджеты на панели мониторинга.

 4
Author: goldenapples, 2010-09-06 21:15:10

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

Но вы также попросили лучший способ сделать это, и я хотел бы предложить вам еще раз взглянуть на сообщение, на которое вы ссылаетесь ( Переход от разработки к производству) но на этот раз посмотрите на плагин Я ссылаюсь в этом посте на плагин для исправления данных после перехода с одного сервера на другой. Вместо того, чтобы периодически пачкать руки SQL, вам нужно заново учиться, почему бы не делегировать это плагину, который его обрабатывает?

Плагин полностью подключаемый, поэтому, когда вам нужно перейти на SQL для обработки некоторых других данных, представленных одним из ваших других плагинов, вы можете расширить его, и, таким образом, он может обрабатывать все, что нужно исправить при переходе с хоста на хост. Вероятно, лучшая часть - это что это дает вам место в /wp-config.php для перечисления всех деталей каждого хоста; т.Е. Доменов, корневых путей, баз данных, пользователей баз данных, паролей и даже таких вещей, как ключи API Google Maps, когда вам это нужно.

Плагин все еще находится в альфа-версии, поэтому он находится здесь, на StackExchange, и еще не указан в репозитории плагинов WordPress:

 0
Author: MikeSchinkel, 2017-04-13 12:37:56