This post is part of the ClassicPress Plugin Development series in which I am going to look at both best practice for developing plugins and how I approach some requirements as well as some of the functions I commonly use.
In the last post I covered saving and loading options in a ClassicPress plugin. When you create a plugin with options you will want to provide defaults to be used before the user makes any changes to the settings; this both allows for basic operation of the plugin and avoids unset option errors.
The get_option
function does allow for defaults to be passed, but this will only work if there are no options; it will not work effectively if new options are added to the plugin. This can be handled using the wp_parse_args
function which merges user defined arguments into defaults array.
wp_parse_args( string|array|object $args, array $defaults = array() )
Parameters
$args (string|array|object) (Required) Value to merge with $defaults.
$defaults (array) (Optional) Array that serves as the defaults.
Default value: array()Return
(array) Merged user defined values with defaults.
The below is an example of loading options with defaults from my Comment Validator plugin:
/**
* Get options including defaults.
*
* @since 1.2.0
*
*/
function azrcrv_cv_get_option($option_name){
$defaults = array(
'min_length' => 10,
'max_length' => 500,
'mod_length' => 250,
'prevent_unreg_using_reg_name' => 1,
'use_network' => 1,
);
$options = get_option($option_name, $defaults);
$options = wp_parse_args($options, $defaults);
return $options;
}
The above example works when the default options is single level. If the options are multilevel, these need to be handled differently; I will cover this in the next post in this series.
Click to show/hide the ClassicPress Plugin Development Series Index
What should we write about next?
If there is a topic which fits the typical ones of this site, which you would like to see me write about, please use the form, below, to submit your idea.