Quelle est la différence entre les options et les paramètres?

14

Et lequel dois-je utiliser?

Quelle est la différence entre l' API Options et l' API Setings ?

J'ai un thème avec plus de 100 options d'administration, comment dois-je m'enregistrer et les stocker? En ce moment, j'utilise l' API Options mais je ne suis pas trop satisfait, chaque option est enregistrée séparément, ce qui crée beaucoup de requêtes de base de données.

Je vois actuellement trois façons de stocker les options / paramètres de WordPress:

1. API d'options - l'ancienne (la pire?).

(J'utilise déjà celui-ci)

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

Et puis à l'avant:

echo get_option('option1'); 

Ça a l'air moche et je ne pense pas que ce soit la bonne façon de stocker un grand nombre d'options (j'adorerais les regrouper d'une manière ou d'une autre).

2. API d'options - 1 option en tant que grand tableau.

Je ne sais pas comment mettre à jour ce tableau à l'aide de formulaires html, n'importe qui? Je crois que ça devrait aller comme:

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

update_option('theme_settings',$opt);

Et puis à l'avant:

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

J'ai entendu dire que cela diminue vraiment le nombre de requêtes et je les ai toutes en une seule option. J'adorerais utiliser celui-ci mais comme je l'ai mentionné ci-dessus, je ne sais pas comment mettre à jour ce tableau d'options dans le formulaire d'administration Wordpress. Je suppose: <input type="hidden" name="theme_settings" value="option1,option2,option3,..." />va écraser le tableau au lieu d'ajouter de nouveaux éléments?

3. Paramètres API - la nouvelle façon.

Nécessite beaucoup de code supplémentaire:

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

Et je ne sais pas quelle est la différence entre cela et la méthode avec une option comme tableau?

tl; dr Alors, comment dois-je projeter le stockage de mes paramètres de thème pour qu'il fonctionne rapidement et stocke toutes les options / paramètres en un seul endroit afin que je puisse, par exemple, les faire écho / vider tous avec une seule fonction simple (oui , Je veux mal le faire mais je ne sais pas comment faire avec cette API de paramètres). La deuxième méthode semble la meilleure à ce jour.

Wordpressor
la source

Réponses:

11

L'API Options est principalement une API de base de données, vous permettant d'obtenir et de stocker facilement des valeurs dans le tableau d'options de la base de données.

L'API Paramètres est une API d'interface. Il vous permet de créer des écrans de paramètres d'une manière qui s'adaptera aux modifications futures de l'interface WordPress, ainsi que de gérer la sécurité (nonces et liste blanche et validation et autres) automatiquement et plus facilement que de rouler votre propre code.

Plus d'informations sur l'API Paramètres: http://ottopress.com/2009/wordpress-settings-api-tutorial/

Otto
la source
3
+1. L'API Paramètres est la bonne approche et gérera vos 100 options de thème sans sourciller. Certains imbéciles ont écrit un tutoriel très long pour incorporer l'API Settings dans les thèmes WordPress .
Chip Bennett
Otto, @Chip Bennett merci les gars. J'ai une autre question supplémentaire - selon la documentation, je devrais créer plusieurs groupes de paramètres pour chaque page d'administration, cela affectera-t-il les performances / le nombre de requêtes? Y a-t-il quelque chose de mal à garder toutes les options dans un groupe (disons «paramètres de thème») comme je l'ai expliqué dans ma question trop longue pour lire? :)
Wordpressor
2
Je recommanderais d'utiliser un seul groupe d'options. Si vous avez besoin d'une organisation d'interface utilisateur, utilisez les sections de paramètres et / ou les onglets de page de paramètres.
Chip Bennett
@Chip Bennett, d'accord, merci beaucoup :) Super tutoriel btw.
Wordpressor
@ChipBennett Link: l' incorporation de l'API Paramètres dans les thèmes WordPress dans votre commentaire est rompue.
Vijay Chavda