我的Wordpress安装只有一个活动主题。这个wp_option
它的条目显示有31个主题mod条目。
a:31:{s:18:"custom_css_post_id";i:5248;s:30:"theme_settings_api_keys_google";s:39:"xxx.....etc..";s:28:"theme_settings_xxx";........etc...etc...etc....;s:11:"custom_logo";i:5810;}
但是当我跑步的时候
get_theme_mod( \'my_mod_x\' ))
什么都不回来
在命令行上运行时也是如此:
wp theme mod get --all --allow-root
. 我得到的只是:
+--------------------+-------+
| key | value |
+--------------------+-------+
| custom_css_post_id | 5248 |
+--------------------+-------+
谁能告诉我是什么让WordPress认为只有一个主题模式,而应该有很多主题模式?
最合适的回答,由SO网友:Meyer Auslander - Tst 整理而成
问题是,如果序列化的字符串长度与其真正的字符串长度不匹配,则会出现这种情况。迁移步骤之一是使用以下命令更改数据库SQL文件中的域名:
sed -i \'s/old-domain-name/new-domain/g\' db-dump.sql
其中一个主题mod是一个包含旧域名的字符串。当它更改为新域名时,字符串的长度没有调整为与新字符串长度匹配。因此,WordPress无法正确阅读主题mods。
教训:在db转储上执行全局查找和替换时要小心。sql文件!