From 1d29cb663289795c6aca5cf8c624db6ac2475b49 Mon Sep 17 00:00:00 2001 From: joedolson Date: Tue, 12 Apr 2022 16:16:08 +0000 Subject: [PATCH] Media: Enable edits to custom image sizes. Add a filter `edit_custom_thumbnail_sizes` to allow users to enable editing individual custom image sizes. Props silb3r, joedolson, costdev. Fixes #28277. Built from https://develop.svn.wordpress.org/trunk@53161 git-svn-id: http://core.svn.wordpress.org/trunk@52750 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- wp-admin/includes/image-edit.php | 45 +++++++++++++++++++++++++++++--- wp-includes/version.php | 2 +- 2 files changed, 42 insertions(+), 5 deletions(-) diff --git a/wp-admin/includes/image-edit.php b/wp-admin/includes/image-edit.php index a91f082bb6..6a0324baa8 100644 --- a/wp-admin/includes/image-edit.php +++ b/wp-admin/includes/image-edit.php @@ -43,7 +43,15 @@ function wp_image_editor( $post_id, $msg = false ) { $note = ""; } } - + $edit_custom_sizes = false; + /** + * Filters whether custom sizes are available options for image editing. + * + * @since 6.0.0 + * + * @param bool|array $edit_custom_sizes True if custom sizes can be edited or array of custom sizes. + */ + $edit_custom_sizes = apply_filters( 'edit_custom_thumbnail_sizes', $edit_custom_sizes ); ?>
@@ -239,6 +247,26 @@ function wp_image_editor( $post_id, $msg = false ) { + $size ) { + if ( array_key_exists( $size, $meta['sizes'] ) ) { + if ( 'thumbnail' === $size ) { + continue; + } + ?> + + + + +
@@ -905,10 +933,14 @@ function wp_save_image( $post_id ) { $meta['width'] = $size['width']; $meta['height'] = $size['height']; - if ( $success && ( 'nothumb' === $target || 'all' === $target ) ) { + if ( $success ) { $sizes = get_intermediate_image_sizes(); - if ( 'nothumb' === $target ) { - $sizes = array_diff( $sizes, array( 'thumbnail' ) ); + if ( 'nothumb' === $target || 'all' === $target ) { + if ( 'nothumb' === $target ) { + $sizes = array_diff( $sizes, array( 'thumbnail' ) ); + } + } elseif ( 'thumbnail' !== $target ) { + $sizes = array_diff( $sizes, array( $target ) ); } } @@ -919,6 +951,11 @@ function wp_save_image( $post_id ) { $success = true; $delete = true; $nocrop = true; + } else { + $sizes = array( $target ); + $success = true; + $delete = true; + $nocrop = $_wp_additional_image_sizes[ $size ]['crop']; } /* diff --git a/wp-includes/version.php b/wp-includes/version.php index 5a7675e91f..d43b3a5dcc 100644 --- a/wp-includes/version.php +++ b/wp-includes/version.php @@ -16,7 +16,7 @@ * * @global string $wp_version */ -$wp_version = '6.0-alpha-53160'; +$wp_version = '6.0-alpha-53161'; /** * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.