WordPress plugin options are divided into local options, available only on the current blog, and site options which are available on every blog in the network.
The SDK helps you automatically add options upon plugin activation, and inversely also removes them upon uninstall. The SDK also offers methods to retrieve, update and delete options. The reason you might want to use the SDK’s option handling methods is due to the name prefixing, in which the SDK adds the plugin name as a prefix to the option name, and because of the automatic registration and cleanup.
Local options
For options the your plugin will always use, you must first declare them in a method.
public function local_options() { return array_merge( [ 'load_users' => true, // Describe this option 'users_to_load' => [ 1, 2, 3 ], // Arrays are allowed ], parent::local_options() ); }
This method declares an array of option key => value pairs, and then merges the array with the options array from the parent class, which could be the SDK WordPress base class or perhaps a general superclass you have as a shim just before the base class.
Now the SDK knows which options to automatically insert into the options table upon plugin activation. If your plugin uses the admin_uninstall
method to uninstall itself, the options will be automatically deleted.
The following methods are available to manipulate local options:
delete_local_option( $name )
get_local_option( $name, $default )
update_local_option( $name, $value )
get_local_option
has several defaults that are used if the option is not found:
$default
as specified when calling the method- The value from the
local_options()
array false
The local options prefix
Local options are prefixed with a string, that is returned from the get_local_option_prefix()
method. The default value is the class name.
If you have WP_DEBUG
enabled and find that the SDK complains of the option name being too long, override the above method to return something shorter.
Site options
Site options are reachable from all blogs. To manipulate site options, replace the word local in the text above with site.
site_options()
delete_site_option
get_site_option
- etc…