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.
This commit is contained in:
Robin Cornett
2019-10-22 17:29:46 -04:00
parent a50ce53599
commit b4628b3e36
7 changed files with 51 additions and 21 deletions
@@ -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.
*
+11 -6
View File
@@ -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 ) {
+12 -3
View File
@@ -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 );
@@ -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( '<p>%1$s<select id="%2$s" name="%2$s">',
$output = sprintf(
'<p>%1$s<select id="%2$s" name="%2$s">',
esc_attr( $args['label'] ),
esc_attr( $args['setting'] )
);
foreach ( (array) $args['options'] as $option => $field_label ) {
$output .= sprintf( '<option value="%s" %s>%s</option>',
$output .= sprintf(
'<option value="%s" %s>%s</option>',
esc_attr( $option ),
selected( $option, $value, false ),
esc_attr( $field_label )
@@ -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 ),
@@ -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,
)
);
+2 -2
View File
@@ -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',