そして、どれを使うべきですか?
Options APIとSetings APIの違いは何ですか?
100を超える管理オプションを持つテーマがありますが、それらを登録および保存するにはどうすればよいですか?現時点では、オプションAPIを使用していますが、あまり満足していません。すべてのオプションが個別に登録されているため、多くのデータベースクエリが作成されます。
現在、WordPressのオプション/設定を保存する方法は3つあります。
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');
Looksいように見えますが、それが多数のオプションを保存する正しい方法だとは思いません(どうにかしてそれらをグループ化したいです)。
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'];
私はそれが本当にクエリの数を減らすと聞きました、そして、私はそれらをすべて1つのオプションとして持っています。これを使いたいのですが、上で述べたように、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
};
そして、これと配列として1つのオプションを持つメソッドの違いはわかりませんか?
TL; DRそれがされますので、だから、どのように私は私のテーマ設定の保存を予測する必要があり、高速作業や保管、すべてのオプション/設定を一箇所に、私は、例えば、エコー/ 1簡単な関数でそれらすべてをダンプすることができますので、はい( 、私はそれをひどくやりたいが、このSettings APIでそれを行う方法がわからない。これまでのところ、2番目の方法が最適です。