我应该用哪一个?
两者的区别是什么Options API 和Setings API?
我有一个超过100个管理选项的主题,我应该如何注册&;存储它们?此时我正在使用Options API 但我对它不太满意,每个选项都是单独注册的,所以它们会创建很多数据库查询。
目前我看到了三种存储WordPress选项/设置的方法:
1。选项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。选项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;dr 那么,我应该如何规划我的主题设置存储working fast 和store 所有选项/设置in one place 例如,我将能够用一个简单的函数来回送/转储它们(是的,我很想这样做,但我不知道如何使用这个设置API)。第二种方法看起来是目前为止最好的。