The Options API lets you save and get settings that apply to your whole WordPress site. It helps keep your site settings organized and easy to change.
Options API for site-wide settings in Wordpress
add_option( string $option_name, mixed $value, string $deprecated = '', string $autoload = 'yes' ) get_option( string $option_name, mixed $default = false ) update_option( string $option_name, mixed $value, string $autoload = null ) delete_option( string $option_name )
add_option saves a new option only if it does not exist yet.
get_option fetches the value of an option, or returns a default if not found.
add_option('site_phone', '123-456-7890');
$phone = get_option('site_phone', 'No phone set');
update_option('site_phone', '987-654-3210');
delete_option('site_phone');This code shows how to add, get, update, and optionally delete a site-wide setting called 'support_email'. It prints the email before and after updating it.
<?php // Add a site-wide setting for support email add_option('support_email', 'help@example.com'); // Get and print the support email $email = get_option('support_email', 'not set'); echo "Support Email: $email\n"; // Update the support email update_option('support_email', 'support@example.com'); // Get and print the updated email $email = get_option('support_email'); echo "Updated Support Email: $email\n"; // Delete the option // delete_option('support_email'); ?>
Options are stored in the WordPress database and loaded on every page load if autoload is 'yes'.
Use unique option names to avoid conflicts with other plugins or themes.
Deleting an option removes it completely from the database.
The Options API stores site-wide settings in WordPress.
Use add_option, get_option, update_option, and delete_option to manage these settings.
This helps keep your site settings organized and easy to change.
Practice
Solution
Step 1: Understand the role of Options API
The Options API is designed to store settings that affect the whole site, like site title or custom settings.Step 2: Compare with other options
Creating posts, user login, and styling are handled by other parts of WordPress, not the Options API.Final Answer:
To store and manage site-wide settings easily -> Option CQuick Check:
Options API = site-wide settings [OK]
- Confusing Options API with post creation
- Thinking it manages user authentication
- Assuming it handles CSS styling
Solution
Step 1: Identify function purposes
add_option() adds a new option, update_option() changes it, delete_option() removes it, and get_option() retrieves the value.Step 2: Match retrieval action
Since we want to get or read the stored value, get_option() is the correct function.Final Answer:
get_option() -> Option BQuick Check:
Retrieve option = get_option() [OK]
- Using add_option() to get values
- Confusing update_option() with retrieval
- Trying to delete instead of get
add_option('site_color', 'blue');
update_option('site_color', 'green');
echo get_option('site_color');Solution
Step 1: Understand add_option and update_option
add_option sets 'site_color' to 'blue'. Then update_option changes it to 'green'.Step 2: Retrieve current value
get_option('site_color') returns the latest value, which is 'green'.Final Answer:
green -> Option DQuick Check:
Updated option value = green [OK]
- Assuming add_option value stays after update
- Expecting null if updated
- Confusing option name with value
update_option('header_text', 'Welcome!');
add_option('header_text', 'Hello!');
echo get_option('header_text');Solution
Step 1: Understand function order
add_option adds a new option only if it doesn't exist. update_option updates existing or adds if missing.Step 2: Analyze code order
Calling update_option first works fine because it adds or updates the option. add_option after will fail to add since the option exists, but this does not cause an error.Step 3: Correct usage
While add_option before update_option is typical, the code runs without error.Final Answer:
No error, code works fine -> Option AQuick Check:
update_option can add option; add_option after does nothing [OK]
- Calling add_option after update_option
- Thinking update_option can't add new options
- Assuming get_option fails here
Solution
Step 1: Understand update_option behavior
update_option adds the option if it doesn't exist, so calling it first with true sets the value.Step 2: Retrieve current value
Calling get_option right after returns true, showing comments enabled.Step 3: Toggle setting
To toggle off, you would call update_option('comments_enabled', false) later. update_option('comments_enabled', true); echo get_option('comments_enabled'); shows correct initial set and get.Final Answer:
update_option('comments_enabled', true); echo get_option('comments_enabled'); -> Option AQuick Check:
update_option adds or updates, then get_option reads [OK]
- Calling add_option then update_option without retrieval
- Deleting option unnecessarily
- Expecting add_option to update existing option
Ready to prove it?
Pass the test and this pattern moves unknown
