Let's check how the global `$content_width` can affect the `the_post_thumbnail( 'large' )` and trace out the relevant functions dependency: the_post_thumbnail() \ \__ get_the_post_thumbnail() \ \__ wp_get_attachment_image() \ \__ wp_get_attachment_image_src() \ \__ image_downsize() \ \__ image_constrain_size_for_editor() and for the *large* size we have specifically this part within the `image_constrain_size_for_editor()`: elseif ( $size == 'large' ) { /* * We're inserting a large size image into the editor. If it's a really * big image we'll scale it down to fit reasonably within the editor * itself, and within the theme's content width if it's known. The user * can resize it in the editor if they wish. */ $max_width = intval(get_option('large_size_w')); $max_height = intval(get_option('large_size_h')); if ( intval($content_width) > 0 ) { $max_width = min( intval($content_width), $max_width ); } } Here we can see that the *maximum image width* is the **minimum** of the *large image size width* and the *global content width*. One way around that is to change the maximum image width/height through the `editor_max_image_size` filter: // Add a filter callback to avoid the content width restriction add_filter( 'editor_max_image_size', 'wpse_max_image_size', 10, 3 ); // Display large thumbnail the_post_thumbnail( 'large' ); // Remove filter callback remove_filter( 'editor_max_image_size', 'wpse_max_image_size', 10 ); where we define the `wpse_max_image_size()` callback as (PHP 5.4+): function wpse_max_image_size( $max_image_size, $size, $context ) { $max_width = intval( get_option( 'large_size_w' ) ); $max_height = intval( get_option( 'large_size_h' ) ); return [ $max_width, $max_height ]; } where we fetch the *large* image size dimensions from the database. I guess you modified the width from `1024` to `960` through the *Settings > Media* screen. Another option would be to use the `wp_calculate_image_sizes`, but then we would still have to handle the width/height image attributes. This should also be possible through the `wp_get_attachment_image_attributes` filter. It should also be possible to modify temporarily the global content width, but I avoided that here.