You could try this
/**
* step 1 define custom image size
*
* either plan to use \'full\' (returns the size of the image you uploaded)
* OR define our custom image size so we can call one of those instead
* of the system defined default \'post-thumbnail\'
*
* Remainder of this example assumes using \'full\'
* no need to define custom a custom image size
* so remove the following add_image_size() line (and thereby skip step 1).
*/
//add_image_size( \'admin-post-thumbnail\', 846, 288, true );
/**
* step 2 replace the meta box with ours, for standard post type only
*
* set our own callback and move it into the larger main column
*
* Note the image, even in full size, won\'t ever have greater width than
* the current column width as CSS and modern admin panel make the image
* elements responsive to the column width.
*/
add_action(\'do_meta_boxes\', \'wpse104670_move_meta_box\');
function wpse104670_move_meta_box(){
remove_meta_box( \'postimagediv\', \'post\', \'side\' );
add_meta_box(\'postimagediv\', __(\'Featured Image\'), \'wpse104670_post_thumbnail_meta_box\', \'post\', \'normal\', \'low\');
}
// step 3 custom callback to call our functional replacement for _wp_post_thumbnail_html for post type only
function wpse104670_post_thumbnail_meta_box( $post ) {
$thumbnail_id = get_post_meta( $post->ID, \'_thumbnail_id\', true );
echo wpse104670_wp_post_thumbnail_html( $thumbnail_id, $post->ID );
}
/**
* step 4 replace _wp_post_thumbnail_html with our version that calls \'full\'
* (or e.g. \'admin-post-thumbnail\' if custom)
* instead of the default \'post-thumbnail\'
*
* We could do more here, like adjust the content width variable, but
* not entirely necessary as custom image size we defined will
* handle most of it and admin section has responsive CSS keeping image
* from ever exceeding column width.
*/
function wpse104670_wp_post_thumbnail_html( $thumbnail_id = null, $post = null ) {
global $content_width, $_wp_additional_image_sizes;
$post = get_post( $post );
$post_type_object = get_post_type_object( $post->post_type );
$set_thumbnail_link = \'<p class="hide-if-no-js"><a title="%s" href="%s" id="set-post-thumbnail" class="thickbox">%s</a></p>\';
$upload_iframe_src = get_upload_iframe_src( \'image\', $post->ID );
$content = sprintf( $set_thumbnail_link,
esc_attr( $post_type_object->labels->set_featured_image ),
esc_url( $upload_iframe_src ),
esc_html( $post_type_object->labels->set_featured_image )
);
if ( $thumbnail_id && get_post( $thumbnail_id ) ) {
$old_content_width = $content_width;
$content_width = 266;
if ( !isset( $_wp_additional_image_sizes[\'full\'] ) ) // use \'full\' for system defined fullsize image OR use our custom image size instead of \'post-thumbnail\'
$thumbnail_html = wp_get_attachment_image( $thumbnail_id, array( $content_width, $content_width ) );
else
$thumbnail_html = wp_get_attachment_image( $thumbnail_id, \'full\' ); // use \'full\' for system defined fullsize image OR use our custom image size instead of \'post-thumbnail\'
if ( !empty( $thumbnail_html ) ) {
$ajax_nonce = wp_create_nonce( \'set_post_thumbnail-\' . $post->ID );
$content = sprintf( $set_thumbnail_link,
esc_attr( $post_type_object->labels->set_featured_image ),
esc_url( $upload_iframe_src ),
$thumbnail_html
);
$content .= \'<p class="hide-if-no-js"><a href="#" id="remove-post-thumbnail" onclick="WPRemoveThumbnail(\\\'\' . $ajax_nonce . \'\\\');return false;">\' . esc_html( $post_type_object->labels->remove_featured_image ) . \'</a></p>\';
}
$content_width = $old_content_width;
}
/**
* Filter the admin post thumbnail HTML markup to return.
*
* @since 2.9.0
*
* @param string $content Admin post thumbnail HTML markup.
* @param int $post_id Post ID.
*/
return apply_filters( \'admin_post_thumbnail_html\', $content, $post->ID );
}