Apa perbedaan antara Opsi & Pengaturan?

14

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.

Wordpressor
sumber

Jawaban:

11

Opsi API pada dasarnya adalah API basis data, yang memungkinkan Anda untuk mendapatkan dan menyimpan nilai dalam tabel opsi dari basis data dengan mudah.

Pengaturan API adalah API antarmuka. Hal ini memungkinkan Anda untuk membangun layar pengaturan dengan cara yang akan beradaptasi dengan perubahan di masa depan untuk antarmuka WordPress, serta untuk menangani keamanan (nonses dan daftar putih dan validasi dan semacamnya) secara otomatis dan lebih mudah daripada menggulirkan kode Anda sendiri.

Lebih lanjut tentang Pengaturan API: http://ottopress.com/2009/wordpress-settings-api-tutorial/

Otto
sumber
3
+1. Pengaturan API adalah pendekatan yang benar, dan akan menangani 100 opsi Tema Anda tanpa mengedipkan mata. Beberapa orang bodoh menulis tutorial yang sangat bertele-tele untuk memasukkan Pengaturan API di Tema WordPress .
Chip Bennett
Otto, @Chip Bennett, terima kasih. Saya punya satu pertanyaan tambahan - menurut dokumentasi saya harus membuat beberapa grup pengaturan untuk setiap halaman admin, apakah itu akan memengaruhi kinerja / jumlah permintaan entah bagaimana? Apakah ada yang salah dengan menyimpan semua opsi dalam satu grup (katakanlah 'pengaturan tema') seperti yang saya jelaskan dalam terlalu lama untuk membaca pertanyaan? :)
Wordpressor
2
Saya akan merekomendasikan hanya menggunakan satu grup opsi. Jika Anda memerlukan organisasi UI, gunakan bagian pengaturan, dan atau tab halaman pengaturan.
Chip Bennett
@Chip Bennett, baiklah, terima kasih banyak :) Btw tutorial yang bagus.
Wordpressor
@ChipBennett Link: memasukkan API Pengaturan di Tema WordPress dalam komentar Anda rusak.
Vijay Chavda