Недавно я переместил многосайтовую сеть в новый домен. В настоящее время в сети есть только 1 сайт (я в процессе создания сайтов для сети и перенесу этот сайт на промежуточный сервер для тестирования).
Для перемещения сайта я сделал следующее:
wp-config.php
файл на промежуточном сервере с правильной информацией БД и обновленным URLНа данном этапе около все работает отлично, все, кроме настроек темы. Я понимаю, что это хранится в виде сериализованного массива, и я соответственно обновил длину каждого из полей. См. Ниже для сохраненного значения:
a:19:{i:0;b:0;s:8:"tcx_logo";s:72:"http://stange.********.com/wp-content/uploads/2014/11/***-***-bottle.png";s:13:"tcx_address_1";s:12:"***** Avenue";s:13:"tcx_address_2";s:0:"";s:12:"tcx_citytown";s:7:"*******";s:10:"tcx_county";s:6:"******";s:12:"tcx_postcode";s:8:"**** ***";s:11:"tcx_country";s:0:"";s:7:"tcx_lat";d:**.**********0000076470314525067806243896484375;s:7:"tcx_lng";d:-*.**********00000065853100750246085226535797119140625;s:12:"tcx_facebook";s:12:"************";s:11:"tcx_twitter";s:12:"************";s:18:"nav_menu_locations";a:2:{s:9:"main-menu";i:2;s:6:"footer";i:3;}s:16:"tcx_openingtimes";s:0:"";s:13:"tcx_foodtimes";s:225:"<dl class="dl-horizontal">
<dt>Monday to Thursday:</dt>
<dd>12noon - 2:30pm & 5:30pm - 9:00pm</dd>
<dt>Friday & Saturday:</dt>
<dd>12noon - 2:30pm & 5:30pm - 9:00pm</dd>
<dt>Sunday:</dt>
<dd>12noon - 8:00pm</dd>
</dl>";s:13:"tcx_telephone";s:13:"**** *** 5535";s:9:"tcx_email";s:27:"info@****************.co.uk";s:14:"tcx_bookatable";s:17:"Bookatable Widget";s:10:"tcx_seekom";s:13:"Seekom Widget";}
Конфиденциальная информация была ******
«D.
Всякий раз, когда я посещаю область настройки темы, я вижу поля, но не вижу никаких значений. Ни одно из сохраненных значений также не отображается на веб-интерфейсе, что наводит меня на мысль, что это проблема с этим полем в базе данных.
Есть идеи?
Ваша проблема, кажется, с этим разделом:
s:225:"<dl class="dl-horizontal">
<dt>Monday to Thursday:</dt>
<dd>12noon - 2:30pm & 5:30pm - 9:00pm</dd>
<dt>Friday & Saturday:</dt>
<dd>12noon - 2:30pm & 5:30pm - 9:00pm</dd>
<dt>Sunday:</dt>
<dd>12noon - 8:00pm</dd>
</dl>"
…где я думаю, что вы посчитали символы неправильно. Конечно, если я вырезал и вставил вашу версию — и заменил звездочки, которые вы поместили в числовые поля, — мне нужно установить длину 243, а не 224, чтобы правильно десериализовать. Однако, учитывая, что копирование и вставка в Stack Overflow и из него, вероятно, приводят в замешательство, трудно быть уверенным. Почти наверняка есть некоторые проблемы в пустом пространстве, которые затруднят диагностику.
Если это проблема с ручным обновлением ваших сериализаций, вы должны увидеть ошибки, по крайней мере, в журнале ошибок сервера, которые помогут вам точно определить проблему, например, «Примечание PHP: unserialize (): ошибка по смещению X байтов Y в /path/to/file.php», что может дать вам некоторые подсказки.
Я рекомендую вместо обновления длины вручную использовать сценарий, разработанный специально для этой цели, который будет десериализовать значения в вашей базе данных, выполнить замену, а затем повторно выполнить их повторную сериализацию. я использую Search-Replace-DB именно для этой цели при отправке баз данных WordPress на мой промежуточный сайт.
Других решений пока нет …