使用wp_parse_args设置插件默认设置

时间:2012-10-11 作者:bryceadams

因此,我想为我的每个插件设置默认值,我正在使用wp\\u parse\\u args这样做,我认为这是正确的方法,但我遇到了障碍。

这是我目前的代码:

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

}
现在,如果我添加如下内容:

$output = $slider_insert;
return $output;
我可以使用<?php echo eddslider_options_each(\'slider_insert\'); ?> 它将具有定义的默认集,并且工作良好。How do I do this for every option though? 非常感谢。

1 个回复
最合适的回答,由SO网友:Stephen Harris 整理而成

Try:

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