Skip to content

Commit f24edd1

Browse files
Improve deletion to use sources data when available, falling back to sizeinfo data
1 parent 4dbb3e7 commit f24edd1

File tree

2 files changed

+13
-16
lines changed

2 files changed

+13
-16
lines changed

src/wp-admin/includes/image.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ function wp_get_missing_image_subsizes( $attachment_id, $mime_type = '' ) {
9090
}
9191

9292
if ( ! $mime_type ) {
93-
$mime_type = get_post_mime_type( get_post( $attachment_id ) );
93+
$mime_type = get_post_mime_type( get_post( $attachment_id ) );
9494
}
9595

9696
$registered_sizes = wp_get_registered_image_subsizes();
@@ -506,7 +506,7 @@ function _wp_make_subsizes( $new_sizes, $file, $image_meta, $attachment_id, $mim
506506
}
507507

508508
if ( ! $mime_type ) {
509-
$mime_type = wp_get_image_mime( $file );
509+
$mime_type = wp_get_image_mime( $file );
510510
}
511511

512512
// Check if any of the new sizes already exist.

src/wp-includes/post.php

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -6446,30 +6446,27 @@ function wp_delete_attachment_files( $post_id, $meta, $backup_sizes, $file ) {
64466446
}
64476447
}
64486448

6449-
$primary_mime = isset( $meta['mime_type'] ) ? $meta['mime_type'] : false;
6450-
64516449
// Remove intermediate and backup images if there are any.
64526450
if ( isset( $meta['sizes'] ) && is_array( $meta['sizes'] ) ) {
64536451
$intermediate_dir = path_join( $uploadpath['basedir'], dirname( $file ) );
64546452

64556453
foreach ( $meta['sizes'] as $size => $sizeinfo ) {
6456-
$intermediate_file = str_replace( wp_basename( $file ), $sizeinfo['file'], $file );
6457-
6458-
if ( ! empty( $intermediate_file ) ) {
6459-
$intermediate_file = path_join( $uploadpath['basedir'], $intermediate_file );
64606454

6461-
if ( ! wp_delete_file_from_directory( $intermediate_file, $intermediate_dir ) ) {
6462-
$deleted = false;
6463-
}
6464-
}
64656455
// Check for alternate size mime types in the sizeinfo['sources'] array to delete.
6466-
if ( isset( $sizeinfo['sources'] ) && is_array( $sizeinfo['sources'] ) && $primary_mime ) {
6456+
if ( isset( $sizeinfo['sources'] ) && is_array( $sizeinfo['sources'] ) ) {
64676457
foreach ( $sizeinfo['sources'] as $mime => $properties ) {
6468-
if ( $mime === $primary_mime || ! is_array( $properties ) || empty( $properties['file'] ) ) {
6469-
continue;
6458+
$intermediate_file = str_replace( wp_basename( $file ), $properties['file'], $file );
6459+
if ( ! wp_delete_file_from_directory( $intermediate_file, $intermediate_dir ) ) {
6460+
$deleted = false;
64706461
}
6462+
}
6463+
} else {
6464+
// Otherwise, delete files from the sizeinfo data.
6465+
$intermediate_file = str_replace( wp_basename( $file ), $sizeinfo['file'], $file );
6466+
6467+
if ( ! empty( $intermediate_file ) ) {
6468+
$intermediate_file = path_join( $uploadpath['basedir'], $intermediate_file );
64716469

6472-
$intermediate_file = str_replace( wp_basename( $file ), $properties['file'], $file );
64736470
if ( ! wp_delete_file_from_directory( $intermediate_file, $intermediate_dir ) ) {
64746471
$deleted = false;
64756472
}

0 commit comments

Comments
 (0)