web-dev-qa-db-fra.com

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

Et lequel devrais-je utiliser?

Quelle est la différence entre Options API et API de paramétrage ?

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

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

1. Options API - l'ancienne (la pire?) Manière.

(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 au début:

echo get_option('option1'); 

C'est moche et je ne pense pas que ce soit la bonne façon de stocker un grand nombre d'options (j'aimerais les grouper d'une manière ou d'une autre).

2. Options API - 1 option en tant que grand tableau.

Je ne suis pas sûr de savoir comment mettre à jour ce tableau à l'aide de formulaires html, ça vous tente? Je crois que ça devrait aller comme:

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

update_option('theme_settings',$opt);

Et puis en tête:

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

J'ai entendu dire que cela réduisait vraiment le nombre de requêtes et je les ai toutes comme une 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'administrateur de Wordpress. Je suppose que: <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 suis pas sûr de la différence entre ceci 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 soit travail rapide et store toutes les options/settings en un seul endroit je pourrai, par exemple, les echo/dump avec une simple fonction (oui, je veux le faire mal mais je ne sais pas comment faire cela avec cette API de paramètres). La deuxième méthode semble la meilleure jusqu'à présent.

12
Wordpressor

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

L'API de paramètres est une API d'interface. Il vous permet de construire des écrans de paramètres de manière à s'adapter aux modifications futures de l'interface WordPress, ainsi que de gérer la sécurité (informations, listes blanches et validation, etc.) automatiquement et plus facilement que de rouler vous-même votre code.

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

11
Otto