Bird
Raised Fist0
Wordpressframework~10 mins

Reading and writing settings in Wordpress - Interactive Code Practice

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
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to read a WordPress option named 'site_name'.

Wordpress
$site_name = get_option([1]);
Drag options to blanks, or click blank then click option'
Asite_name
B'site_name'
C'get_site_name'
Dsite_name()
Attempts:
3 left
💡 Hint
Common Mistakes
Forgetting quotes around the option name
Using a function call instead of a string
2fill in blank
medium

Complete the code to update the WordPress option 'background_color' with the value '#ffffff'.

Wordpress
update_option([1], '#ffffff');
Drag options to blanks, or click blank then click option'
A'background_color'
Bbackground_color
C'background-color'
DbackgroundColor
Attempts:
3 left
💡 Hint
Common Mistakes
Using variable names without quotes
Using camelCase instead of the exact option name
3fill in blank
hard

Fix the error in the code to properly add a new option 'footer_text' with value 'Thank you!'.

Wordpress
add_option([1], 'Thank you!');
Drag options to blanks, or click blank then click option'
AfooterText
B'footer-text'
Cfooter_text
D'footer_text'
Attempts:
3 left
💡 Hint
Common Mistakes
Passing option name without quotes
Using incorrect option name format
4fill in blank
hard

Fill both blanks to read the option 'header_text' and provide a default value 'Welcome!'.

Wordpress
$header = get_option([1], [2]);
Drag options to blanks, or click blank then click option'
A'header_text'
B'Welcome!'
CWelcome!
Dheader_text
Attempts:
3 left
💡 Hint
Common Mistakes
Not quoting the default value
Using variable names instead of strings
5fill in blank
hard

Fill all three blanks to update the option 'footer_color' only if the new value '#000000' is different from the current one.

Wordpress
if (get_option([1]) !== [2]) {
    update_option([3], '#000000');
}
Drag options to blanks, or click blank then click option'
A'footer_color'
B'#000000'
D'#ffffff'
Attempts:
3 left
💡 Hint
Common Mistakes
Not quoting option names or values
Using different strings for option names

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