我应该使用哪一个?
Options API和Settings API有什么区别?
我有一个包含100多个管理选项的主题,我该如何注册和存储它们?目前,我正在使用Options API,但我对此不太满意,每个选项都单独注册,因此它们会创建很多数据库查询。
我目前看到三种存储WordPress选项/设置的方式:
1. Options API-旧的(最糟糕的方法)。
(我已经在使用这个了)
<form method="post" action="options.php">
<?php wp_nonce_field('update-options'); ?>
// all the inputs
<input type="hidden" name="action" value="update" />
<input type="hidden" name="page_options" value="option1,option2,option3,..." />
<p class="submit">
<input type="submit" value="<?php _e('Save Changes') ?>" />
</p>
</form>
然后在前端:
echo get_option('option1');
看起来很丑,我认为这不是存储大量选项的正确方法(我希望以某种方式将它们分组)。
2. Options API-1个选项作为一个大数组。
我不确定这里如何使用html表单更新此数组,有人吗?我相信它应该像这样:
$opt['option1'] = foo
$opt['option2'] = foo
$opt['option3'] = bar
update_option('theme_settings',$opt);
然后在前端:
$settings = get_option('theme_settings');
echo $settings['option1'];
echo $settings['option2'];
echo $settings['option3'];
我听说它确实减少了查询数量,并且将它们全部作为一种选择。我很乐意使用此选项,但是正如我上面提到的,我不确定如何在Wordpress管理表单中更新此选项数组。我猜:<input type="hidden" name="theme_settings" value="option1,option2,option3,..." />
会覆盖数组而不是添加新元素吗?
3.设置API-新方法。
需要很多其他代码:
function register_theme_settings() {
//register our settings
register_setting( 'theme-settings', 'option1' );
register_setting( 'theme-settings', 'option2' );
register_setting( 'theme-settings', 'option3' );
register_setting( 'theme-settings', 'option4' );
register_setting( 'theme-settings', 'option5' );
// imagine this for 100 and more options
};
而且我不确定此方法与将一个选项作为数组的方法有什么区别?
TL;博士所以,我应该怎么项目我的主题设置存储,以便将工作速度快和存储的所有选项/设置在一个地方,所以我就可以,例如,回声/甩掉他们全部用一个简单的函数(是的,我想做的不好,但是我不知道如何使用此设置API来做到这一点。到目前为止,第二种方法看起来是最好的。