使用设置API,我应该如何向一个选项添加多个值?

时间:2011-07-25 作者:jnthnclrk

我正在尝试向使用Settings API创建的选项添加/更新其他值。我试图用我的验证回调函数来实现这一点,但我并没有走多远。这是我的代码:

function tccl_settings_option_validate( $input ) {
    add_option( \'tccl_settings_option\', $input );
}
这导致了一个相当大的错误。我应该怎么做?

我想做的是使用验证回调向选项数组添加值,而不覆盖它。

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

获取选项,仅修改需要修改的值,然后返回结果。

function tccl_settings_option_validate( $input ) {
    $options = get_option(\'tccl_settings_option\');
    // modify $options using data from $input as needed
    return $options;
}

SO网友:Bainternet

在tccl\\u settings\\u option\\u validate函数中,您需要:

获取所有现有选项的数组

比如:

function tccl_settings_option_validate( $input ) {

//do regular validation stuff
//...
//...

//get all options
$options = get_option(THEMENAME . \'_settings\');
//update only the neede options
foreach ($input as $key => $value){
    $options[$key] = $value;
}
//return all options
return $options;
}

SO网友:Milo

您不必保存选项,这样就可以了。您的验证功能应该检查输入,然后return 某物

function tccl_settings_option_validate( $input ) {
    // do some checking/formatting/whatever of $input
    // and then
    return $input;
}

结束

相关推荐