更改定制器中的设置名称并保留数据

时间:2015-12-27 作者:Hardeep Asrani

我刚接触Customizer API时创建了一个主题,出于一些奇怪的原因,我将主题设置命名为:

$wp_customize->add_setting(\'thefunk_theme_options[header_color]

而不仅仅是header_color 并将每个设置保存在一个数组中,如thefunk_theme_options[header_color]

所以我最近发现它产生了一些问题,所以我想保存每个设置,比方说,thefunk_theme_options[header_color]header_colorthefunk_header_color.

现在我知道了如何更改自定义程序中的设置。但是,它将影响当前使用该主题的所有人。所有的定制都将消失,那么有人知道如何从旧表导入数据并将其添加到新表中吗?

1 个回复
最合适的回答,由SO网友:cjbj 整理而成

我个人认为,将mod保存在一个数组中是一个很好的解决方案,但传输它们应该不会太困难。只需像这样在阵列中循环:

$all_mods = get_theme_mod(\'thefunk_theme_options\'); // retrieve array
foreach ($all_mods as $key -> $value) {
    if (!empty($value)) set_theme_mod ($key,$value); // set array element as separate mod
    } 
由于只需执行一次,因此在首先运行更新的主题时,可能需要先插入额外的检查,然后删除阵列。

相关推荐

Replace domain in database

我的网站受到攻击,所以基本上所有的核心php文件都已损坏。只剩下数据库。现在我在本地主机中进行了尝试。如果我想从这个数据库恢复我的站点,域名是我唯一需要替换字符串的东西吗</我找到了这个教程-Replace string in database - 更改所有表中的域字符串,但几乎不知道将其放入何处以及如何在wordpress中触发它