Bird
Raised Fist0
Wordpressframework~30 mins

Reading and writing settings in Wordpress - Mini Project: Build & Apply

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Reading and Writing Settings in WordPress
📖 Scenario: You are building a simple WordPress plugin that stores and retrieves a custom setting for your site. This setting controls whether a special greeting message is shown to visitors.
🎯 Goal: Build a WordPress plugin that creates a setting called show_greeting, saves its value, and reads it to decide if the greeting message should appear.
📋 What You'll Learn
Create a setting named show_greeting with a default value of false
Add a configuration variable to hold the option group name myplugin_options
Write code to update the show_greeting setting to true
Write code to read the show_greeting setting and display a greeting message if it is true
💡 Why This Matters
🌍 Real World
Many WordPress plugins need to save and read settings to customize behavior for site owners.
💼 Career
Understanding how to read and write settings is essential for WordPress plugin development and customization.
Progress0 / 4 steps
1
Create the initial setting
Create a variable called default_settings as an array with the key 'show_greeting' set to false. Then use add_option to add 'myplugin_settings' with default_settings as its value.
Wordpress
Hint

Use add_option('myplugin_settings', $default_settings); to create the setting with default values.

2
Add option group configuration
Create a variable called option_group and set it to the string 'myplugin_options'.
Wordpress
Hint

This variable will help group your plugin's settings.

3
Update the setting value
Use get_option to get the 'myplugin_settings' array into a variable called settings. Then set settings['show_greeting'] to true. Finally, use update_option to save settings back to 'myplugin_settings'.
Wordpress
Hint

Use get_option and update_option to read and write settings.

4
Read the setting and display greeting
Use get_option to get 'myplugin_settings' into settings. Then use an if statement to check if settings['show_greeting'] is true. If yes, echo the string 'Hello, welcome to our site!'.
Wordpress
Hint

Check the setting and show the greeting only if it is true.

Practice

(1/5)
1. Which WordPress function is used to read a saved setting from the database?
easy
A. get_option
B. save_option
C. set_option
D. read_option

Solution

  1. Step 1: Understand the purpose of each function

    get_option is the WordPress function designed to retrieve saved settings. The others are not valid WordPress functions.
  2. Step 2: Confirm the correct function for reading settings

    Since get_option reads the saved option value, it is the correct choice.
  3. Final Answer:

    get_option -> Option A
  4. Quick Check:

    Read settings = get_option [OK]
Hint: Remember: get_option reads, update_option writes [OK]
Common Mistakes:
  • Confusing get_option with update_option
  • Using non-existent functions like save_option
  • Thinking set_option reads settings
2. Which of the following is the correct syntax to update a setting named 'site_color' to 'blue'?
easy
A. update_option('site_color', 'blue');
B. update_option('site_color' => 'blue');
C. get_option('site_color', 'blue');
D. set_option('site_color', 'blue');

Solution

  1. Step 1: Identify the correct function and syntax for updating

    The function to update a setting is update_option, which takes two parameters: the option name and the new value.
  2. Step 2: Check the syntax of each option

    update_option('site_color', 'blue'); correctly uses update_option('site_color', 'blue');. update_option('site_color' => 'blue'); uses an incorrect array syntax. get_option('site_color', 'blue'); uses get_option which reads, not writes. set_option('site_color', 'blue'); uses a non-existent function.
  3. Final Answer:

    update_option('site_color', 'blue'); -> Option A
  4. Quick Check:

    Update syntax = update_option(name, value) [OK]
Hint: update_option needs two arguments: name and value [OK]
Common Mistakes:
  • Using get_option to update values
  • Passing arguments as an array instead of separate parameters
  • Using non-existent set_option function
3. What will be the output of this code snippet?
$color = get_option('site_color', 'red');
echo $color;

Assuming 'site_color' is not set in the database.
medium
A. site_color
B. null
C. '' (empty string)
D. red

Solution

  1. Step 1: Understand get_option default value behavior

    If the option 'site_color' does not exist, get_option returns the default value provided as the second argument, here 'red'.
  2. Step 2: Determine the output of echo

    Since 'site_color' is not set, $color will be 'red', so echo outputs 'red'.
  3. Final Answer:

    red -> Option D
  4. Quick Check:

    Missing option returns default value [OK]
Hint: get_option returns default if option missing [OK]
Common Mistakes:
  • Assuming get_option returns empty string if missing
  • Confusing option name with value
  • Expecting null instead of default
4. Identify the error in this code snippet:
update_option('background_color');
medium
A. Function name should be get_option to update
B. update_option cannot update 'background_color'
C. Missing the new value parameter in update_option
D. update_option requires three parameters

Solution

  1. Step 1: Check update_option function parameters

    update_option requires two parameters: the option name and the new value to set.
  2. Step 2: Identify the missing parameter

    The code only passes the option name, missing the new value, causing an error.
  3. Final Answer:

    Missing the new value parameter in update_option -> Option C
  4. Quick Check:

    update_option needs name and value [OK]
Hint: update_option always needs two arguments [OK]
Common Mistakes:
  • Passing only one argument to update_option
  • Confusing get_option with update_option
  • Thinking update_option needs three parameters
5. You want to save a user preference 'font_size' only if it is a positive integer. Which code snippet correctly updates the setting safely?
hard
A.
update_option('font_size', $_POST['font_size']);
B.
$size = intval($_POST['font_size']);
if ($size > 0) {
  update_option('font_size', $size);
}
C.
if ($_POST['font_size']) {
  update_option('font_size', $_POST['font_size']);
}
D.
$size = $_POST['font_size'];
update_option('font_size', $size > 0 ? $size : 12);

Solution

  1. Step 1: Validate and sanitize the input

    $size = intval($_POST['font_size']);
    if ($size > 0) {
      update_option('font_size', $size);
    }
    uses intval to convert input to integer and checks if it is positive before saving.
  2. Step 2: Confirm safe update of option

    Only if the value is positive does it call update_option, preventing invalid data.
  3. Final Answer:

    $size = intval($_POST['font_size']);
    if ($size > 0) {
    update_option('font_size', $size);
    }
    -> Option B
  4. Quick Check:

    Validate input before update_option [OK]
Hint: Always validate input before update_option [OK]
Common Mistakes:
  • Saving raw user input without validation
  • Using update_option without checking value
  • Assuming non-empty input is always valid