移动WordPress多站点,但我的主题自定义已停止工作.为什么


Moving WordPress Multisite, but my theme customisations have stopped working. Why?

我最近将多站点网络移动到了新域。 目前网络中只有 1 个站点(我正在为网络构建站点,我正在将此站点推送到临时服务器进行测试(。

为了移动网站,我做了以下工作:

  • 已传输所有文件
  • 从数据库 A 导出完整数据库,并在暂存时导入到数据库 B
  • 对所有表运行一系列查找和替换查询,以将旧域替换为新域
  • 使用正确的数据库信息和更新的 URL 更新了暂存服务器上的wp-config.php文件

在这个阶段,几乎所有东西都完美无缺,除了主题定制之外。 我意识到这是存储为序列化数组的,并且我已经相应地更新了每个字段的长度。 有关存储值,请参见下文:

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";}

敏感信息已被******

每当我访问主题的自定义区域时,我都会看到字段,但没有看到任何值。 前端也没有显示任何存储的值,这使我认为这是数据库中此字段的问题。

有什么想法吗?

您的问题似乎出在本节上:

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((:/path/to/file.php 中 Y 字节的偏移量 X 处出错",这可能会给您一些线索。

我建议不要手动更新长度,而是使用专门为此目的设计的脚本,该脚本将反序列化数据库中的值,执行替换,然后重新序列化它们。我在将WordPress数据库推送到我的暂存站点时,使用Search-Replace-DB正是为此目的。