diff --git a/includes/class-displayfeaturedimagegenesis-common.php b/includes/class-displayfeaturedimagegenesis-common.php index 54eed6a..7402a0c 100644 --- a/includes/class-displayfeaturedimagegenesis-common.php +++ b/includes/class-displayfeaturedimagegenesis-common.php @@ -54,6 +54,9 @@ class Display_Featured_Image_Genesis_Common { $image_id = self::set_image_id(); $image_size = self::image_size(); $item->backstretch = wp_get_attachment_image_src( $image_id, $image_size ); + if ( empty( $item->backstretch[3] ) ) { + $item->backstretch = wp_get_attachment_image_src( $image_id, 'displayfeaturedimage_backstretch' ); + } // set a content variable so backstretch doesn't show if full size image exists in post. $item->content = false; @@ -392,10 +395,11 @@ class Display_Featured_Image_Genesis_Common { * @since 2.5.0 */ public static function image_size() { - $setting = displayfeaturedimagegenesis_get_setting(); - $image_size = $setting['image_size']; - $post_id = self::get_post_id(); - $post_meta = get_post_meta( $post_id, '_displayfeaturedimagegenesis_disable', true ); + $setting = displayfeaturedimagegenesis_get_setting(); + $registered_size = self::banner_image_size(); + $image_size = 'large' !== $setting['image_size'] ? $registered_size : $setting['image_size']; + $post_id = self::get_post_id(); + $post_meta = get_post_meta( $post_id, '_displayfeaturedimagegenesis_disable', true ); if ( $post_meta && ! is_numeric( $post_meta ) ) { return $post_meta; } @@ -411,6 +415,16 @@ class Display_Featured_Image_Genesis_Common { return apply_filters( 'displayfeaturedimagegenesis_image_size', $image_size ); } + /** + * If the new WordPress image sizes have been registered, use them instead of the old one. + * + * @return string + * @since 3.2.0 + */ + public static function banner_image_size() { + return has_image_size( '2048x2048' ) ? '2048x2048' : 'displayfeaturedimage_backstretch'; + } + /** * Determine if a singular post/page should use a large image instead of backstretch. * diff --git a/includes/class-displayfeaturedimagegenesis.php b/includes/class-displayfeaturedimagegenesis.php index 44ac943..95af857 100644 --- a/includes/class-displayfeaturedimagegenesis.php +++ b/includes/class-displayfeaturedimagegenesis.php @@ -195,12 +195,17 @@ class Display_Featured_Image_Genesis { */ public function add_plugin_supports() { - $args = apply_filters( 'displayfeaturedimagegenesis_custom_image_size', array( - 'width' => 2000, - 'height' => 2000, - 'crop' => false, - ) ); - add_image_size( 'displayfeaturedimage_backstretch', (int) $args['width'], (int) $args['height'], (bool) $args['crop'] ); + if ( ! has_image_size( '2048x2048' ) ) { + $args = apply_filters( + 'displayfeaturedimagegenesis_custom_image_size', + array( + 'width' => 2000, + 'height' => 2000, + 'crop' => false, + ) + ); + add_image_size( 'displayfeaturedimage_backstretch', (int) $args['width'], (int) $args['height'], (bool) $args['crop'] ); + } $move_excerpts = displayfeaturedimagegenesis_get_setting( 'move_excerpts' ); if ( $move_excerpts ) { diff --git a/includes/helper-functions.php b/includes/helper-functions.php index 3ca21dd..5270978 100644 --- a/includes/helper-functions.php +++ b/includes/helper-functions.php @@ -68,8 +68,11 @@ function display_featured_image_genesis_get_term_image_id( $image_id = '' ) { * * @since 2.1.0 */ -function display_featured_image_genesis_get_term_image_url( $size = 'displayfeaturedimage_backstretch' ) { +function display_featured_image_genesis_get_term_image_url( $size = '' ) { + if ( ! $size ) { + $size = displayfeaturedimagegenesis_get()->banner_image_size(); + } $image_id = display_featured_image_genesis_get_term_image_id(); $image_url = wp_get_attachment_image_src( $image_id, $size ); @@ -99,8 +102,11 @@ function display_featured_image_genesis_get_default_image_id( $image_id = '' ) { * * @since 2.1.0 */ -function display_featured_image_genesis_get_default_image_url( $size = 'displayfeaturedimage_backstretch' ) { +function display_featured_image_genesis_get_default_image_url( $size = '' ) { + if ( ! $size ) { + $size = displayfeaturedimagegenesis_get()->banner_image_size(); + } $image_id = display_featured_image_genesis_get_default_image_id(); $image_url = wp_get_attachment_image_src( $image_id, $size ); @@ -147,8 +153,11 @@ function display_featured_image_genesis_get_cpt_image_id( $image_id = '' ) { * * @since 2.1.0 */ -function display_featured_image_genesis_get_cpt_image_url( $size = 'displayfeaturedimage_backstretch' ) { +function display_featured_image_genesis_get_cpt_image_url( $size = '' ) { + if ( ! $size ) { + $size = displayfeaturedimagegenesis_get()->banner_image_size(); + } $image_id = display_featured_image_genesis_get_cpt_image_id(); $image_url = wp_get_attachment_image_src( $image_id, $size ); diff --git a/includes/meta/class-displayfeaturedimagegenesis-postmeta.php b/includes/meta/class-displayfeaturedimagegenesis-postmeta.php index c9a92e2..3bea9ca 100644 --- a/includes/meta/class-displayfeaturedimagegenesis-postmeta.php +++ b/includes/meta/class-displayfeaturedimagegenesis-postmeta.php @@ -131,8 +131,8 @@ class Display_Featured_Image_Genesis_Post_Meta { $image_sizes = apply_filters( 'displayfeaturedimagegenesis_image_size_choices', array( - 'displayfeaturedimage_backstretch' => __( 'Use a banner image if it exists', 'display-featured-image-genesis' ), - 'large' => __( 'Use a large (not banner) image', 'display-featured-image-genesis' ), + 'banner' => __( 'Use a banner image if it exists', 'display-featured-image-genesis' ), + 'large' => __( 'Use a large (not banner) image', 'display-featured-image-genesis' ), ) ); @@ -174,12 +174,14 @@ class Display_Featured_Image_Genesis_Post_Meta { */ protected function do_select( $args, $post_id ) { $value = get_post_meta( $post_id, $args['setting'], true ); - $output = sprintf( '
%1$s