From b4628b3e3685d17058e07760b6620a49de6edca6 Mon Sep 17 00:00:00 2001 From: Robin Cornett Date: Tue, 22 Oct 2019 17:29:46 -0400 Subject: [PATCH] Set up site to use new WordPress image sizes WordPress is adding new image sizes in version 5.3, so our custom image size is redundant. Keeping it in for back compat, plus older images will still need to be retrieved using the old image size name, or else the original size will be used in lieu of a correctly sized option. --- ...ass-displayfeaturedimagegenesis-common.php | 22 +++++++++++++++---- .../class-displayfeaturedimagegenesis.php | 17 +++++++++----- includes/helper-functions.php | 15 ++++++++++--- ...s-displayfeaturedimagegenesis-postmeta.php | 10 +++++---- ...ass-displayfeaturedimagegenesis-output.php | 2 +- ...displayfeaturedimagegenesis-getsetting.php | 2 +- includes/settings/fields-main.php | 4 ++-- 7 files changed, 51 insertions(+), 21 deletions(-) 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',