我正在写一个插件,我决定为插件的不同选项设置多个页面(为了清晰起见)。只做一个选项是小菜一碟,但我在有多个页面时遇到了困难。
我的所有选项都位于注册为的数组中:
register_setting( \'plugin_options\', \'options\', \'validator\' );
正如我所说,只有一页很容易。创建表单,提交表单,弹出窗口,保存选项。现在我有了多个页面,Wordpress似乎完全取代了选项数组,而不管是否还有其他一些我不想接触的值。我尝试了几个选项,然后在google上最终找到了这个解决方案
Otto\'s website:
function plugin_options_validate($input) {
$options = get_option(\'plugin_options\');
$options[\'text_string\'] = trim($input[\'text_string\']);
if(!preg_match(\'/^[a-z0-9]{32}$/i\', $options[\'text_string\'])) {
$options[\'text_string\'] = \'\';
}
return $options;
}
看来这也行不通,我也不知道为什么。
我的实际解决方案是:
获取实际选项如果在选项和输入数组中找到相同的键,则运行foreach array来更改值返回值,瞧但我遇到了麻烦。我有许多通过复选框设置的选项,当我取消选中这些选项时,表单不会提交复选框的名称,因此,我无法正确地遍历我的数组。
我想我要问的是。。。如何回调register\\u设置,该设置将采用任何类型的选项(输入、复选框等),并将not 销毁已保存在数组中的值,这些值没有被我当时保存的选项所触及。
有什么帮助吗?谢谢