我正在尝试迁移具有定制程序定制主题的现有wordpress。我可以启动并运行wordpress, 但是所有主题定制都消失了。我将问题缩小到定制程序和数据库中的wp-options表。每当我访问/重新加载网站时, 都会重置选项theme_mods_ {theme-name}的option_value。如果我通过定制器进行更改, 它们确实会出现, 但是如果我在数据库中更改option_value的值, 则会删除整个主题定制。
我正在使用IIS上托管的wordpress, 数据库是MySql 5.x(不知道确切的版本)。
#1
好的, 我已经面对这个问题一段时间了, 终于解决了。这个答案使我步入正轨:在服务器上上传WordPress网站时显示默认主题
迁移时, 你可能使用查找和替换通过SQL文件更改了URL。问题是wp_options表中的theme_mods_ {theme-name}条目被编码为具有以下格式的对象:type:length:value因此, 更改一个选项的值时, 你也可以更改其长度。如果长度与值不匹配, WP将认为该对象无效, 并将选项重置为默认值a:1:{s:18:” custom_css_post_id”; i:-1;}, 从而破坏菜单和其他自定义选项选项。
例子:
在本地主机上工作:
a:4:{s:18:” custom_css_post_id”; i:-1; s:18:” nav_menu_locations”; a:5:{s:6:” menu-1″; i:1120; s:6:” menu-2″; i:1125; s:8:” top-menu”; i:1120; s:8:” footer-1″; i:1120; s:8:” footer-2″; i:1125 ;} s:9:” my_option”; s:29:” Lorem ipsum”; s:15:” posts_row_image”; s:32:” http://localhost/lorem/dolor.png”;}
在远程服务器上无效:
a:4:{s:18:” custom_css_post_id”; i:-1; s:18:” nav_menu_locations”; a:5:{s:6:” menu-1″; i:1120; s:6:” menu-2″; i:1125; s:8:” top-menu”; i:1120; s:8:” footer-1″; i:1120; s:8:” footer-2″; i:1125 ;} s:9:” my_option”; s:29:” Lorem ipsum”; s:15:” posts_row_image”; s:32:” http://mydistantwebsite.com/lorem/dolor.png”;}
更正了长度, 可以在远程服务器上工作:
a:4:{s:18:” custom_css_post_id”; i:-1; s:18:” nav_menu_locations”; a:5:{s:6:” menu-1″; i:1120; s:6:” menu-2″; i:1125; s:8:” top-menu”; i:1120; s:8:” footer-1″; i:1120; s:8:” footer-2″; i:1125 ;} s:9:” my_option”; s:29:” Lorem ipsum”; s:15:” posts_row_image”; s:43:” http://mydistantwebsite.com/lorem/dolor.png”;}
评论前必须登录!
注册