web-dev-qa-db-fra.com

Utilisation de wp_parse_args pour configurer les paramètres par défaut du plug-in

Je souhaite donc que les paramètres par défaut soient définis pour chacun de mes plugins, et j'utilise wp_parse_args pour le faire, ce qui, à mon avis, est la bonne, mais je me heurte à un obstacle.

Voici mon code pour le moment:

function eddslider_options_each( $edd_slider_options ) {

$edd_slider_options = get_option( 'eddslider_options' );

/**
 * Define the array of defaults
 */ 
$defaults = array(
    'slider_insert'     => 0,
    'slider_arrows'     => 0,
    'slider_bullets'    => 0,
    'slider_effect'     => 'fade',
    'slider_theme'      => 'default'
);
/**
 *  Parse incomming $args into an array and merge it with $defaults
 */ 
$edd_slider_options = wp_parse_args( $edd_slider_options, $defaults );

/**
 * OPTIONAL: Declare each item in $args as its own variable i.e. $type, $before.
 */ 
extract( $edd_slider_options, EXTR_SKIP );

}

Maintenant, si j'ajoute quelque chose comme:

$output = $slider_insert;
return $output;

Je suis capable d'utiliser <?php echo eddslider_options_each('slider_insert'); ?> et il aura le jeu par défaut défini et fonctionnera bien. Comment puis-je faire cela pour toutes les options? Merci.

1
bryceadams

Essayer:

function eddslider_options_each( $key ) {

    $edd_slider_options = get_option( 'eddslider_options' );

     /* Define the array of defaults */ 
    $defaults = array(
        'slider_insert'     => 0,
        'slider_arrows'     => 0,
        'slider_bullets'    => 0,
        'slider_effect'     => 'fade',
        'slider_theme'      => 'default'
    );

    $edd_slider_options = wp_parse_args( $edd_slider_options, $defaults );

    if( isset($edd_slider_options[$key]) )
         return $edd_slider_options[$key];

    return false;
}
2
Stephen Harris