WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top
 * The default template for displaying content. Used for both single and index/archive/search.
 * @package WordPress
 * @subpackage Twenty_Twelve
 * @since Twenty Twelve 1.0

    <article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
            <?php if ( is_sticky() && is_home() && ! is_paged() ) : ?>
            <div class="featured-post">
                    <?php _e( 'Featured post', 'twentytwelve' ); ?>
            <?php endif; ?>
            <header class="entry-header">
                     <a href="<?php the_permalink(); ?>"><?php the_post_thumbnail(); ?></a>
                    <?php if ( is_single() ) : ?>
                    <h1 class="entry-title"><?php the_title(); ?></h1>
                    <?php else : ?>
                    <h1 class="entry-title">
                            <a href="<?php the_permalink(); ?>" title="<?php echo esc_attr( sprintf( __( 'Permalink to %s', 'twentytwelve' ), the_title_attribute( 'echo=0' ) ) ); ?>" rel="bookmark"><?php the_title(); ?></a>
                    <?php endif; // is_single() ?>
                    <?php if ( comments_open() ) : ?>
                            <div class="comments-link">
                                    <?php comments_popup_link( '<span class="leave-reply">' . __( 'Leave a reply', 'twentytwelve' ) . '</span>', __( '1 Reply', 'twentytwelve' ), __( '% Replies', 'twentytwelve' ) ); ?>
                            </div><!-- .comments-link -->
                    <?php endif; // comments_open() ?>
            </header><!-- .entry-header -->

            <?php if ( is_search() ) : // Only display Excerpts for Search ?>
            <div class="entry-summary">
                    <?php the_excerpt(); ?>
            </div><!-- .entry-summary -->
            <?php else : ?>
            <div class="entry-content">
                    <?php the_content( __( 'Continue reading <span class="meta-nav">&rarr;</span>', 'twentytwelve' ) ); ?>
                    <?php wp_link_pages( array( 'before' => '<div class="page-links">' . __( 'Pages:', 'twentytwelve' ), 'after' => '</div>' ) ); ?>
            </div><!-- .entry-content -->
            <?php endif; ?>

            <footer class="entry-meta">
                    <?php twentytwelve_entry_meta(); ?>
                    <?php edit_post_link( __( 'Edit', 'twentytwelve' ), '<span class="edit-link">', '</span>' ); ?>
                    <?php if ( is_singular() && get_the_author_meta( 'description' ) && is_multi_author() ) : // If a user has filled out their description and this is a multi-author blog, show a bio on their entries. ?>
                            <div class="author-info">
                                    <div class="author-avatar">
                                            <?php echo get_avatar( get_the_author_meta( 'user_email' ), apply_filters( 'twentytwelve_author_bio_avatar_size', 68 ) ); ?>
                                    </div><!-- .author-avatar -->
                                    <div class="author-description">
                                            <h2><?php printf( __( 'About %s', 'twentytwelve' ), get_the_author() ); ?></h2>
                                            <p><?php the_author_meta( 'description' ); ?></p>
                                            <div class="author-link">
                                                    <a href="<?php echo esc_url( get_author_posts_url( get_the_author_meta( 'ID' ) ) ); ?>" rel="author">
                                                            <?php printf( __( 'View all posts by %s <span class="meta-nav">&rarr;</span>', 'twentytwelve' ), get_the_author() ); ?>
                                            </div><!-- .author-link        -->
                                    </div><!-- .author-description -->
                            </div><!-- .author-info -->
                    <?php endif; ?>
            </footer><!-- .entry-meta -->
    </article><!-- #post -->

At moment in the TwentyTwelve theme looks like the_post_thumbnail() gets the featured image and render it in the main blog page and the single page I tired removing it but it also removed any other images the blog might have, I would like to only remove the featured image from the main blog page where all the posts are listed and the single.php.

Any help would be greatly appreciated

 <a href="<?php the_permalink(); ?>"><?php the_post_thumbnail(); ?></a>
share|improve this question

If you don't want to modify the template files directly, you could always make use of the post_thumbnail_html filter:

function wpse70960_filter_post_thumbnail_html( $html ) {
    if ( ( is_home() || is_single() ) {
        return '';
    } else {
        return $html;
add_filter( 'post_thumbnail_html', 'wpse70960_filter_get_post_thumbnail_html' );

This code snippet goes either in your functions.php file or in a custom (mu-) plugin.


From your comment:

Im using a static page for the homepage and blog is using a new page I created in the WP CMS using a template file called Blog page. The homepage is rending the featured image for posts which is what I need. I want to avoid using the Featured image in the blog page and the singe page.

There are two approaches:

  1. Don't use a custom page template to display the blog posts index. It's not necessary. Assuming that template file is template-blog.php, copy that file, and rename it as home.php. Then go to Dashboard -> Settings -> Reading, and set "Page for posts" to the Page that is/was using the custom page template. That should solve the problem, and ensure that you don't lose any formatting.
  2. Alternately, inside your filter callback, add the following:

    global $post;
    $page_template = get_post_meta( $post->ID, '_wp_page_template', true );
    if ( ( is_home() is_single() || 'template-blog.php' == $page_template ) {
        // etc.

Edit 2

Full code, using alternative #2 above:

function wpse70960_filter_post_thumbnail_html( $html ) {
    global $post;
    $page_template = get_post_meta( $post->ID, '_wp_page_template', true );
    if ( ( is_home() || is_single() || 'template-blog.php' == $page_template ) {
        return '';
    } else {
        return $html;
add_filter( 'post_thumbnail_html', 'wpse70960_filter_get_post_thumbnail_html' );
share|improve this answer
in this specific case, it would leave an empty link tag ... – Michael Oct 30 '12 at 14:15
@kaiser: re: the edit - why is is_front_page() necessary, when is_home() returns true for the blog posts index, whether the blog posts index is on the front page or on a static page? – Chip Bennett Oct 31 '12 at 1:16
@ChipBennett Please explain - you're our template hierarchy specialist ;) – kaiser Oct 31 '12 at 1:28
@kaiser: is_front_page() returns true when on the site front page, whether the site front page displays the blog posts index or a static page. is_home() returns true on the blog posts index, whether the blog posts index is on the front page or a separate, static page. So, when the blog posts index is on the front page, both is_front_page() and is_home() will return true; otherwise, one or the other, but not both, will return true. I think is_home() covers the OP's use case. – Chip Bennett Oct 31 '12 at 1:35
Please add follow up stuff to the question or take this to chat. Comments are not meant for extended discussion. – Rarst Oct 31 '12 at 15:21

Simply wrap this inside an if statement:

if ( ( is_home() OR is_front_page() ) OR is_single() )
    ?><a href="<?php the_permalink(); ?>"><?php the_post_thumbnail(); ?></a><?php
share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.