I removed the header image as an option in the interface by doing the following:
In header.php, I wrapped two lines of code around the header code
if ( get_header_image() ) :
endif;
Now, go to: Admin > Appearance > Header > Remove Header Image
Your header image and markup will now be gone, yet re-enabled should you select a new image.
So, to clarify, the header code in header.php should look like this:
<?php
if ( get_header_image() ) :
// Check if this is a post or page, if it has a thumbnail, and if it's a big one
if ( is_singular() &&
has_post_thumbnail( $post->ID ) &&
( /* $src, $width, $height */ $image = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'post-thumbnail' ) ) &&
$image[1] >= HEADER_IMAGE_WIDTH ) :
// Houston, we have a new header image!
echo get_the_post_thumbnail( $post->ID, 'post-thumbnail' );
else : ?>
<img src="<?php header_image(); ?>" width="<?php echo HEADER_IMAGE_WIDTH; ?>" height="<?php echo HEADER_IMAGE_HEIGHT; ?>" alt="" />
<?php endif; ?>
<?php endif; ?>