Conditionally display featured image on singular posts and pages
Easily control whether the featured image appears in the single post or page view (doesn't hide it in archive/list view).
Next Milestone 40K
Unlock Exact Install Count
See the precise estimated active installs for this plugin, calculated from real-time ranking data.
- Exact install estimates within tiers
- Track install growth over time
- Milestone progress predictions
Rank Changes
Downloads Growth
Upgrade to Pro
Unlock 30-day, 90-day, and yearly download history charts with a Pro subscription.
Upgrade NowReviews & Ratings
Tracked Keywords
Showing 4 of 4| Keyword | Position | Change | Type | Updated |
|---|---|---|---|---|
| featuredimage | 1 | — | Tag | 16 hours ago |
| thumbnail | 135 | — | Tag | 16 hours ago |
| featured image | 136 | — | Tag | 16 hours ago |
| featured | 155 | — | Tag | 16 hours ago |
Unlock Keyword Analytics
Track keyword rankings, search positions, and discover new ranking opportunities with a Pro subscription.
- Full keyword position tracking
- Historical ranking data
- Competitor keyword analysis
Support Threads Overview
Track This Plugin
Get detailed analytics, keyword tracking, and position alerts delivered to your inbox.
Start Tracking FreePlugin Details
- Version
- 3.3.2
- Last Updated
- Jan 09, 2026
- Requires WP
- 6.7+
- Tested Up To
- 6.9
- PHP Version
- 5.6 or higher
- Author
- Cyrill Bolliger
Support & Rating
- Rating
- ★ ★ ★ ★ ★ 4.8
- Reviews
- 38
- Support Threads
- 1
- Resolved
- 0%
Keywords
Upgrade to Pro
Unlock keyword rankings, search positions, and detailed analytics with a Pro subscription.
Upgrade NowSimilar Plugins
Frequently Asked Questions
Common questions about Conditionally display featured image on singular posts and pages
2) The theme manually calls the featured image using custom functions.
Solution for case 1
If your theme loads the featured image before the loop, you can modify the plugin's behavior by adding the following snippet to your functions.php file:
function cybocfi_set_startup_hook() {
return 'get_header';
}
add_filter( 'cybocfi_startup_hook', 'cybocfi_set_startup_hook' );
add_filter( 'cybocfi_only_hide_in_the_loop', '__return_false' );
Note: This may hide the featured image from other plugins that rely on it, such as SEO plugins or the 'latest posts' plugin.
Solution for case 2
If your theme uses custom functions to display featured images, try the following options:
Ask the theme developer to use standard WordPress functions like wp_get_attachment_image(), get_the_post_thumbnail() or the_post_thumbnail().
Create a child theme and load the featured image with one of the functions above.
Is this plugin GDPR compliant?
Yes! This plugin does not collect, process, or store any personal information, making it fully GDPR-compliant.
Can I hide featured images by default?
Yes. Add the following code to your functions.php file to hide featured images by default:
add_filter('cybocfi_hide_by_default', '__return_true');
This will automatically check the "Hide Featured Image" option for all new posts and pages. Existing content remains unchanged.
For different default behaviors based on the post type, use:
function cybocfi_set_default_hiding_state( $default, $post_type ) {
if ( 'post' === $post_type ) {
$default = true; // Hide featured images on posts by default
} else if ( 'page' === $post_type ) {
$default = false; // Show featured images on pages by default
}
return $default;
}
add_filter( 'cybocfi_hide_by_default', 'cybocfi_set_default_hiding_state', 10, 2 );
Can I limit this plugin to posts (and exclude other post types)?
Yes. By default, the plugin works on all post types that support featured images. To restrict it to posts only, add the following snippet to your functions.php:
function cybocfi_limit_to_posts( $enabled, $post_type ) {
if ( 'post' === $post_type ) {
return $enabled;
}
return false;
}
add_filter( 'cybocfi_enabled_for_post_type', 'cybocfi_limit_to_posts', 10, 2 );
If you want it to work for both posts and pages but disable it for other post types:
function cybocfi_limit_to_posts_and_pages( $enabled, $post_type ) {
$allowed_post_types = array( 'post', 'page' ); // add any post type you want to use the plugin with
return in_array( $post_type, $allowed_post_types );
}
add_filter( 'cybocfi_enabled_for_post_type', 'cybocfi_limit_to_posts_and_pages', 10, 2 );
WooCommerce: How does the plugin handle product images?
If the featured image is hidden for a WooCommerce product, it will still appear as a thumbnail in the cart, checkout, and product lists. However, it will not be displayed in the single product view. If a product gallery is available, all gallery images will be shown as usual, except for the hidden featured image.
WooCommerce: Can I remove empty space left by the hidden image?
Yes. The plugin applies CSS adjustments automatically for standard themes. If needed, customize it with this snippet:
function cybocfi_woocommerce_styles( $css ) {
return '.wp-block-woocommerce-product-image-gallery {display: none;}';
}
add_filter( 'cybocfi_woocommerce_style_overrides', 'cybocfi_woocommerce_styles' );
These styles apply only when the featured image is hidden in WooCommerce product pages.
Can I translate this plugin into my language?
Absolutely! You can contribute a translation here. Keep in mind that translations need community approval before they go live.
How can I change the text of the checkbox?
You can customize the checkbox label using this filter in your functions.php file:
function cybocfi_set_featured_image_label( $label ) {
return 'Hide featured image in post'; // change this text
}
add_filter( 'cibocfi_checkbox_label', 'cybocfi_set_featured_image_label' );
I can’t save posts in WordPress 5.7.0
A WordPress core bug (#52787) may cause this issue when another plugin uses post meta values in a specific way. If you see the error "Updating failed. Could not delete meta value from database.", try:
The cybocfi_post_type filter has been replaced with cybocfi_enabled_for_post_type. To update your code:
1) Change the filter hook from cybocfi_post_type to cybocfi_enabled_for_post_type.
2) Swap the filter functions arguments. $enabled is now the first argument $post_type the second.
In case you've only used one argument ($post_type), you must not only adapt the function signature, but also add the priority and number of arguments to your add_filter() function call.
Here's an example:
// BEFORE UPDATE: Using the deprecated filter
function cybocfi_limit_to_posts( $post_type, $enabled ) {
if ( 'post' === $post_type ) {
return $enabled;
}
return false;
}
add_filter( 'cybocfi_post_type', 'cybocfi_limit_to_posts', 10, 2 );
// AFTER UPDATE: Using the new filter
function cybocfi_limit_to_posts( $enabled, $post_type ) {
if ( 'post' === $post_type ) {
return $enabled;
}
return false;
}
add_filter( 'cybocfi_enabled_for_post_type', 'cybocfi_limit_to_posts', 10, 2 );