Say you have a feature that you’d like to be able to enable/disable at any time. One way to do this is by saving an option in the
_options table and then checking its value to see if the feature is active or not. We can check this by using
get_option() which is a simple function for checking option values but it does have some quirks.
First, it will only return strings. So setting
true will not pass a strict comparison evaluation like this:
if ( get_option( 'option_name' ) === true )
We would actually have
1 returned which won’t match so the condition will be
false even though
true is saved in the option itself.
if ( get_option( 'option_name' ) === 'true' )
To compare it, we would need to set the comparison to a string like this:
if ( get_option( 'option_name' ) === 'true' ) // or if ( get_option( 'option_name' ) === '1' )
Second, you can also pass a default value with
get_option. This will actually add the default as a new option if it doesn’t already exist.
if ( get_option( 'option_name', 'true' ) === 'true' )
Third, the default value won’t be saved if it evaluates to
false. So while the code above will create a new row with a value of
'true'this code won’t alter the options table at all.
if ( get_option( 'option_name', 'false' ) === 'true' )
So now you know how to save an option to the WordPress
_options table and a few of the quirks that go along with this.