Qual è la differenza tra Opzioni e Impostazioni?


14

E quale dovrei usare?

Qual è la differenza tra l' API delle opzioni e l' API delle impostazioni ?

Ho un tema con oltre 100 opzioni di amministrazione, come devo registrarle e memorizzarle? In questo momento sto usando l' API Opzioni ma non ne sono troppo contento, ogni singola opzione viene registrata separatamente, quindi creano molte query sul database.

Al momento vedo tre modi per memorizzare le opzioni / impostazioni di WordPress:

1. Opzioni API: il vecchio (il peggiore?) Modo.

(Sto già usando questo)

<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>

E poi nella parte frontale:

echo get_option('option1'); 

Sembra brutto e non penso che sia il modo giusto di memorizzare un gran numero di opzioni (mi piacerebbe raggrupparle in qualche modo).

2. Opzioni API - 1 opzione come un grande array.

Non sono sicuro qui come aggiornare questo array utilizzando i moduli HTML, chiunque? Credo che dovrebbe andare come:

$opt['option1'] = foo
$opt['option2'] = foo
$opt['option3'] = bar

update_option('theme_settings',$opt);

E poi nel front-end:

$settings = get_option('theme_settings');
echo $settings['option1']; 
echo $settings['option2']; 
echo $settings['option3']; 

Ho sentito che diminuisce davvero il numero di query e le ho tutte come un'unica opzione. Mi piacerebbe usare questo, ma come ho detto sopra non sono sicuro di come aggiornare questo array di opzioni all'interno del modulo di amministrazione di Wordpress. Immagino: <input type="hidden" name="theme_settings" value="option1,option2,option3,..." />sovrascriverà l'array invece di aggiungere nuovi elementi?

3. Impostazioni API - il nuovo modo.

Richiede molto codice aggiuntivo:

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    
};

E non sono sicuro di quale sia la differenza tra questo e il metodo con un'opzione come array?

tl; dr Quindi, come dovrei proiettare la mia memoria delle impostazioni dei temi in modo che funzioni velocemente e memorizzi tutte le opzioni / impostazioni in un unico posto in modo da poter, ad esempio, riordinarle / scaricarle tutte con una semplice funzione (sì , Voglio farlo male ma non ho idea di come farlo con questa API delle impostazioni). Il secondo metodo sembra il migliore finora.

Risposte:


11

L'API delle opzioni è principalmente un'API del database, che consente di ottenere e archiviare facilmente i valori nella tabella delle opzioni del database.

L'API delle impostazioni è un'API di interfaccia. Ti consente di creare schermate delle impostazioni in modo da adattarle alle future modifiche all'interfaccia di WordPress, nonché di gestire la sicurezza (nonces, whitelisting e validation e simili) automaticamente e più facilmente rispetto al rolling-your-own-code.

Altre informazioni sull'API delle impostazioni: http://ottopress.com/2009/wordpress-settings-api-tutorial/


3
+1. L'API delle impostazioni è l'approccio corretto e gestirà le tue 100 opzioni di temi senza battere ciglio. Alcuni sciocchi hanno scritto un tutorial molto lungo per incorporare l'API delle impostazioni nei temi di WordPress .
Chip Bennett,

Otto, @Chip Bennett grazie ragazzi. Ho un'altra domanda aggiuntiva: in base alla documentazione, dovrei creare più gruppi di impostazioni per ciascuna pagina di amministrazione, influirà in qualche modo sul rendimento / numero di query? C'è qualcosa di sbagliato nel mantenere tutte le opzioni all'interno di un gruppo (diciamo 'impostazioni del tema') come ho spiegato nella mia domanda troppo lunga per leggere? :)
Wordpressor

2
Consiglierei di usare solo un gruppo di opzioni. Se è necessaria l'organizzazione dell'interfaccia utente, utilizzare le sezioni delle impostazioni e le schede della pagina delle impostazioni.
Chip Bennett,

@Chip Bennett, va bene, grazie mille :) Ottimo tutorial a proposito.
Wordpressor

@ChipBennett Link: l' integrazione dell'API delle impostazioni nei temi di WordPress nel tuo commento è interrotta.
Vijay Chavda,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.