Bird
Raised Fist0
Wordpressframework~5 mins

Reading and writing settings in Wordpress

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
Introduction

Settings let you save and use options in WordPress. Reading and writing settings helps your site remember user choices or preferences.

You want to save a site title or description set by the admin.
You need to store user preferences like color scheme or layout.
You want to keep track of plugin options that users can change.
You want to read saved settings to show different content.
You want to update settings when a form is submitted.
Syntax
Wordpress
<?php
// To read a setting
$value = get_option('option_name');

// To write or update a setting
update_option('option_name', 'new_value');

// To add a new setting if it does not exist
add_option('option_name', 'default_value');

// To delete a setting
delete_option('option_name');
?>

get_option reads the saved value or returns false if not found.

update_option adds or updates the value automatically.

Examples
This reads the WordPress site title and prints it.
Wordpress
<?php
// Read site name
$site_name = get_option('blogname');
echo $site_name;
?>
This saves a red color value for a plugin setting.
Wordpress
<?php
// Save a custom color setting
update_option('myplugin_color', '#ff0000');
?>
This adds a new setting with default text if it is not already saved.
Wordpress
<?php
// Add a setting only if it does not exist
add_option('myplugin_text', 'Hello world');
?>
Sample Program

This code saves a greeting message and then reads it back to show on the page.

Wordpress
<?php
// Save a greeting message
update_option('greeting_message', 'Welcome to my site!');

// Read and display the greeting
$message = get_option('greeting_message');
echo $message;
?>
OutputSuccess
Important Notes

Settings are stored in the WordPress database and persist between page loads.

Use unique option names to avoid conflicts with other plugins or themes.

Always sanitize and validate data before saving settings for security.

Summary

Use get_option to read saved settings.

Use update_option to save or change settings.

Settings help keep user or site preferences persistent.

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