Bird
Raised Fist0
Wordpressframework~5 mins

Featured images 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

Featured images let you add a main picture to your posts or pages. This makes your content look nice and helps readers understand what it is about quickly.

When you want to show a main picture for a blog post to attract readers.
When creating a portfolio and you want each project to have a thumbnail image.
When making a news site and you want each article to have a headline image.
When designing a homepage that shows recent posts with images.
When you want to improve how your posts look when shared on social media.
Syntax
Wordpress
<?php set_post_thumbnail( $post_id, $thumbnail_id ); ?>
Use set_post_thumbnail to assign a featured image to a post programmatically.
The $post_id is the ID of the post, and $thumbnail_id is the ID of the image attachment.
Examples
This code checks if the current post has a featured image and then displays it.
Wordpress
<?php if ( has_post_thumbnail() ) {
  the_post_thumbnail();
} ?>
This sets the featured image with ID 123 for the post with ID 42.
Wordpress
<?php set_post_thumbnail( 42, 123 ); ?>
This displays the featured image in the 'medium' size.
Wordpress
<?php the_post_thumbnail( 'medium' ); ?>
Sample Program

This WordPress template code loops through posts. For each post, it shows the featured image in large size with an alt text for accessibility. If no featured image is set, it shows a message. Then it displays the post title and content.

Wordpress
<?php
// Template part to show featured image in a post
if ( have_posts() ) {
  while ( have_posts() ) {
    the_post();
    if ( has_post_thumbnail() ) {
      the_post_thumbnail( 'large', ['alt' => get_the_title()] );
    } else {
      echo '<p>No featured image set.</p>';
    }
    the_title( '<h2>', '</h2>' );
    the_content();
  }
}
?>
OutputSuccess
Important Notes

Always add alt text to images for accessibility.

Featured images improve how your posts look on social media and search engines.

You can set featured images in the WordPress editor or programmatically with code.

Summary

Featured images add a main picture to posts or pages.

Use has_post_thumbnail() to check and the_post_thumbnail() to display it.

They help make your site more attractive and accessible.

Practice

(1/5)
1. What is the main purpose of a featured image in WordPress?
easy
A. To change the font style of the post
B. To add background music to posts
C. To add a video to the sidebar
D. To add a main picture to posts or pages

Solution

  1. Step 1: Understand the role of featured images

    Featured images are used to add a main picture that represents a post or page visually.
  2. Step 2: Compare options with this purpose

    Only To add a main picture to posts or pages describes adding a main picture; others describe unrelated features.
  3. Final Answer:

    To add a main picture to posts or pages -> Option D
  4. Quick Check:

    Featured image = main picture [OK]
Hint: Featured images show main pictures for posts/pages [OK]
Common Mistakes:
  • Confusing featured images with videos or audio
  • Thinking featured images change fonts
  • Assuming featured images affect sidebars
2. Which WordPress function correctly checks if a post has a featured image?
easy
A. has_post_thumbnail()
B. the_post_thumbnail()
C. get_featured_image()
D. check_thumbnail()

Solution

  1. Step 1: Identify the function to check featured image existence

    WordPress uses has_post_thumbnail() to check if a post has a featured image.
  2. Step 2: Differentiate from display functions

    the_post_thumbnail() displays the image, not checks it. Other options are not valid WordPress functions.
  3. Final Answer:

    has_post_thumbnail() -> Option A
  4. Quick Check:

    Check featured image = has_post_thumbnail() [OK]
Hint: Use has_post_thumbnail() to check existence [OK]
Common Mistakes:
  • Using the_post_thumbnail() to check instead of display
  • Assuming get_featured_image() exists
  • Confusing function names
3. What will the following code output if the current post has a featured image?
if (has_post_thumbnail()) {
  the_post_thumbnail('medium');
} else {
  echo 'No image';
}
medium
A. Shows a syntax error
B. Displays 'No image' text
C. Displays the featured image in medium size
D. Displays the featured image in full size

Solution

  1. Step 1: Understand the condition

    The code checks if the post has a featured image using has_post_thumbnail().
  2. Step 2: Analyze the output when true

    If true, it calls the_post_thumbnail('medium'), which displays the image in medium size.
  3. Final Answer:

    Displays the featured image in medium size -> Option C
  4. Quick Check:

    has_post_thumbnail() true = show medium image [OK]
Hint: If has_post_thumbnail() true, the_post_thumbnail() shows image [OK]
Common Mistakes:
  • Thinking it shows full size by default
  • Assuming it prints 'No image' when image exists
  • Confusing function usage causing syntax errors
4. Identify the error in this code snippet that tries to display a featured image:
if (has_post_thumbnail) {
  the_post_thumbnail();
}
medium
A. Missing semicolon after the_post_thumbnail()
B. Missing parentheses after has_post_thumbnail
C. No error, code is correct
D. the_post_thumbnail() should have an argument

Solution

  1. Step 1: Check function usage

    has_post_thumbnail is a function and must be called with parentheses ().
  2. Step 2: Verify other parts

    the_post_thumbnail() can be called without arguments; the semicolon is present after it.
  3. Final Answer:

    Missing parentheses after has_post_thumbnail -> Option B
  4. Quick Check:

    Function calls need () [OK]
Hint: Always add () when calling functions [OK]
Common Mistakes:
  • Forgetting parentheses on function calls
  • Thinking arguments are always required
  • Assuming semicolons are mandatory in PHP
5. You want to show a featured image only if it exists, otherwise show a default image located at /images/default.jpg. Which code snippet correctly does this?
hard
A. if (has_post_thumbnail()) { the_post_thumbnail(); } else { echo ''; }
B. the_post_thumbnail() ?: '';
C. if (the_post_thumbnail()) { the_post_thumbnail(); } else { echo ''; }
D. has_post_thumbnail() ? the_post_thumbnail('/images/default.jpg') : '';

Solution

  1. Step 1: Check condition for featured image existence

    Use has_post_thumbnail() to check if the post has a featured image.
  2. Step 2: Display featured image or default image

    If true, display with the_post_thumbnail(). Otherwise, echo an <img> tag with the default image path.
  3. Final Answer:

    if (has_post_thumbnail()) { the_post_thumbnail(); } else { echo '<img src="/images/default.jpg" alt="Default">'; } -> Option A
  4. Quick Check:

    Check existence, show image or default [OK]
Hint: Use has_post_thumbnail() with if-else for fallback image [OK]
Common Mistakes:
  • Using the_post_thumbnail() in condition instead of has_post_thumbnail()
  • Passing image path as argument to the_post_thumbnail() incorrectly
  • Not providing an else fallback for missing images