web-dev-qa-db-fra.com

Où devrais-je utiliser get_option dans un plugin

Je travaille sur la création d'un plugin pour m'aider dans les projets de développement futurs. Je veux m'assurer que j'utilise les meilleures pratiques lorsque je l'écris. Ma question concerne l'utilisation de get_option dans mon plugin.

J'ai configuré une page d’options pour le plug-in et y ai défini quelques options. Est-il préférable de cocher l'option sur l'étape add_action ou avec la fonction en cours d'ajout. J'ai écrit un court exemple pour illustrer ma question. Merci!

if ( get_option('my_option[option_1]') ==='1' ) {
  add_action('init', 'my_action')
}

ou

add_action('init', 'my_action');
function my_action() {
  if ( get_option('my_option[option_1]') ==='1' ) {
    //do stuff here
  }

Je pense que si je vérifie d'abord get_option, je peux le définir en tant que var dans mon plug-in, puis simplement vérifier la var chaque fois que j'en ai besoin. Mais comme je le disais, je suis un nouveau venu dans le développement de plugins, je ne comprends donc pas parfaitement la meilleure façon d'utiliser get_option.

Merci!

3
yoxalld

Les deux voies sont presque égales, la première sera légèrement plus rapide, car le rappel n'est appelé que si la vérification est égale à TRUE.

Notez que vous ne pouvez pas tester une option comme celle-ci, à moins que le nom de l'option soit réellement 'my_option[option_1]'. Ce que vous voulez probablement, c'est:

if ( $test = get_option('my_option') and 1 === $test['option_1'] )
    add_action();

Un exemple étendu:

$my_options = get_option('my_option');

if ( 1 === $my_options['test_1'] )
    add_action( 'init', 'my_init' );

if ( 1 === $my_options['test_2'] )
    add_action( 'shutdown', 'my_shutdown' );

// clean up
unset( $my_options );
5
fuxia