2014-12-22 3 views
3

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

Чтобы переместить сайт я сделал следующее:

  • переместил файлы
  • вывезенных полную базу данных из базы данных A и импортированные в базе данных B на постановку
  • Ран серии найти & заменить запросы на всех таблицах, чтобы заменить старый домен новым доменом
  • Обновлен файл моего 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:"[email protected]****************.co.uk";s:14:"tcx_bookatable";s:17:"Bookatable Widget";s:10:"tcx_seekom";s:13:"Seekom Widget";} 

Чувствительная информация была ****** «d.

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

Любые идеи?

+1

Кстати, если вы не используете https://github.com/interconnectit/Search-Replace-DB для замены сайта, я рекомендую его. Он будет искать в сериализованных данных и правильно их заменять, и он используется многими людьми для этой точной цели. Также: хранится ли в вашем вопросе версия «до» или «после»? Не могли бы вы предоставить нам оба? –

+0

(Кроме того, когда ***** данные, это поможет, если вы будете использовать что-то числовое, например «0», для числовых значений («d: ...») - таким образом вы не будете ломать сериализация ...) –

ответ

0

Ваша проблема, как представляется, в этом разделе:

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 на моем промежуточном сайте.

+0

Странно, я получаю 254 для этой длины строки, а не 225. Похоже на проблему с пробелами и, возможно, на одну из многих. Я повторно импортировал БД и запустил скрипт поиска и замены, теперь отлично работает. благодаря – Mike