Dan yang mana yang harus saya gunakan?
Apa perbedaan antara API Opsi dan API Pengaturan ?
Saya memiliki tema dengan lebih dari 100 opsi admin, bagaimana cara mendaftar & menyimpannya? Saat ini saya menggunakan Opsi API tetapi saya tidak terlalu senang dengan hal itu, setiap opsi sedang didaftarkan secara terpisah sehingga mereka membuat banyak permintaan basis data.
Saya melihat tiga cara menyimpan opsi / pengaturan WordPress saat ini:
1. Opsi API - cara lama (yang terburuk?).
(Saya sudah menggunakan yang ini)
<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>
Dan kemudian di ujung depan:
echo get_option('option1');
Terlihat jelek dan saya pikir itu bukan cara yang tepat untuk menyimpan sejumlah besar opsi (saya ingin mengelompokkan mereka entah bagaimana).
2. Opsi API - 1 opsi sebagai array besar.
Saya tidak yakin di sini cara memperbarui array ini menggunakan formulir html, siapa pun? Saya percaya itu harus seperti:
$opt['option1'] = foo
$opt['option2'] = foo
$opt['option3'] = bar
update_option('theme_settings',$opt);
Dan kemudian di ujung depan:
$settings = get_option('theme_settings');
echo $settings['option1'];
echo $settings['option2'];
echo $settings['option3'];
Saya sudah mendengar itu benar-benar mengurangi jumlah permintaan dan saya memiliki semuanya sebagai satu opsi. Saya ingin menggunakan yang satu ini tetapi seperti yang saya sebutkan di atas saya tidak yakin bagaimana cara memperbarui array opsi ini di dalam formulir admin Wordpress. Saya kira: <input type="hidden" name="theme_settings" value="option1,option2,option3,..." />
apakah akan menimpa array alih-alih menambahkan elemen baru?
3. Pengaturan API - cara baru.
Membutuhkan banyak kode tambahan:
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
};
Dan saya tidak yakin apa perbedaan antara ini dan metode dengan satu opsi sebagai array?
tl; dr Jadi, bagaimana saya harus memproyeksikan penyimpanan pengaturan tema saya sehingga akan bekerja dengan cepat dan menyimpan semua opsi / pengaturan di satu tempat sehingga saya akan dapat, misalnya, gema / buang semuanya dengan satu fungsi sederhana (ya , Saya ingin melakukan itu dengan buruk tetapi saya tidak tahu bagaimana melakukannya dengan Pengaturan API ini). Metode kedua terlihat yang terbaik sejauh ini.