在WP admin customizer中,没有显示任何以前的控件,因此,尽管选项已被删除,但仍会存储值,这些值本应被删除。
您尚未执行任何操作来删除它们。您所问的代码将从customiser中删除已注册的控件和已注册的设置,但您需要考虑这意味着什么。
将设置添加到Customiser时add_setting()
您所做的是记录保存该设置的各种行为。比如控制哪些用户有权保存它,以及如何清理设置值。
因此,当您从Customiser中删除设置时,您只需删除这些行为,并取消注册与该设置交互的任何控件。这与add_setting()
, 你会注意到add_setting()
不将任何内容保存到数据库。
这都是关于Customiser接口本身的行为。所有这些都与保存在数据库中的实际数据无关。一旦数据保存在数据库中,它就会一直存在,直到您将其删除为止。这个get_theme_mod()
函数不会以任何方式与Customiser交互。它只是直接从数据库中检索值。这就是为什么get_theme_mod()
does not return any default value set with add_setting()
, 这就是为什么它仍然返回未注册设置的值。
如果要删除已保存的主题模块,需要使用remove_theme_mod()
:
remove_theme_mod( \'psychic2016_logo\' );
但请注意,您只需运行此代码一次,该值将被永久删除(the
customize_register
每次加载Customiser时,钩子都会运行)。