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', esc_attr( $args['label'] ), esc_attr( $args['setting'] ) ); foreach ( (array) $args['options'] as $option => $field_label ) { - $output .= sprintf( '', + $output .= sprintf( + '', esc_attr( $option ), selected( $option, $value, false ), esc_attr( $field_label ) diff --git a/includes/output/class-displayfeaturedimagegenesis-output.php b/includes/output/class-displayfeaturedimagegenesis-output.php index 5040fb2..e794a6e 100644 --- a/includes/output/class-displayfeaturedimagegenesis-output.php +++ b/includes/output/class-displayfeaturedimagegenesis-output.php @@ -172,7 +172,7 @@ class Display_Featured_Image_Genesis_Output { $image_id = displayfeaturedimagegenesis_get()->set_image_id(); return wp_get_attachment_image( $image_id, - 'displayfeaturedimage_backstretch', + displayfeaturedimagegenesis_get()->banner_image_size(), false, array( 'alt' => $this->get_image_alt_text( $image_id ), diff --git a/includes/settings/class-displayfeaturedimagegenesis-getsetting.php b/includes/settings/class-displayfeaturedimagegenesis-getsetting.php index 8ddc613..155510e 100644 --- a/includes/settings/class-displayfeaturedimagegenesis-getsetting.php +++ b/includes/settings/class-displayfeaturedimagegenesis-getsetting.php @@ -44,7 +44,7 @@ class DisplayFeaturedImageGenesisGetSetting { 'large_hook' => 'genesis_before_loop', 'large_priority' => 12, 'large' => array(), - 'image_size' => 'displayfeaturedimage_backstretch', + 'image_size' => 'banner', 'scriptless' => 0, ) ); diff --git a/includes/settings/fields-main.php b/includes/settings/fields-main.php index 5836315..6b5e78c 100644 --- a/includes/settings/fields-main.php +++ b/includes/settings/fields-main.php @@ -28,8 +28,8 @@ return array( 'choices' => apply_filters( 'displayfeaturedimagegenesis_image_size_choices', array( - 'displayfeaturedimage_backstretch' => __( 'Banner (default)', 'display-featured-image-genesis' ), - 'large' => __( 'Large', 'display-featured-image-genesis' ), + 'banner' => __( 'Banner (default)', 'display-featured-image-genesis' ), + 'large' => __( 'Large', 'display-featured-image-genesis' ), ) ), 'type' => 'select',