切换 Wordpress 主题时如何维护我的设置?

How can I maintain my settings when switching Wordpress themes?

我目前正在开发一系列 Wordpress 主题。这些主题都需要有自定义主题选项,它们都会有自定义主题选项页面。但是,某些主题具有其他主题中未使用的选项。

当我切换主题、在新主题上自定义主题选项并保存选项时,我注意到该主题未使用的所有选项都丢失了,切换回来时必须重新设置。有没有办法确保这些选项保留在数据库中,即使它们没有被当前活动主题使用?

您可以使用多种功能来维护您的主题选项。

当一个主题被激活时,会有一个钩子,叫做after_switch_theme

最好的方法,如果你创建一个数组,其中默认选项keys/values是。

所以创建一个这样的数组:

$theme_default_options = array (
    //.....
);

所以你可以使用来设置一个选项:

add_action('after_switch_theme', 'theme_setup_function');

如果你想删除你的选项,或者操作数据库,当你切换旧主题时,你可以使用switch_theme。这发生在停用时:

add_action('switch_theme', 'theme_deactivation_function');

还有3个操作选项的功能:

add_option($option, $value);
update_option($option, $value);
delete_option($option);

并且在任何 switch 函数中,您可以在默认选项数组上使用 foreach 循环。

为所有主题的所有选项使用唯一的名称。例如,对于主题 pingpong,使用像 pingpong_homepage 这样的前缀。