diff --git a/features/media-regenerate.feature b/features/media-regenerate.feature index 944f0c07..51d4bd3b 100644 --- a/features/media-regenerate.feature +++ b/features/media-regenerate.feature @@ -1561,6 +1561,7 @@ Feature: Regenerate WordPress attachments # Make canola.jpg fail. Given a wp-content/uploads/canola.jpg file: """ + We need to have some bytes at least to avoid a PHP notice in exif_imagetype(). """ When I try `WP_CLI_TEST_MEDIA_REGENERATE_PDF=1 wp media regenerate --yes` diff --git a/src/Media_Command.php b/src/Media_Command.php index 45c303d1..38a0f211 100644 --- a/src/Media_Command.php +++ b/src/Media_Command.php @@ -605,6 +605,14 @@ private function process_regeneration( $id, $skip_delete, $only_missing, $image_ return; } + // On read error, we might only get the filesize returned and nothing else. + if ( 1 === count( $metadata ) && array_key_exists( 'filesize', $metadata ) && ! ( $is_pdf && $image_size ) ) { + WP_CLI::warning( sprintf( 'Read error while retrieving metadata. (ID %d)', $id ) ); + WP_CLI::log( "$progress Couldn't regenerate thumbnails for $att_desc." ); + $errors++; + return; + } + if ( $image_size ) { if ( $this->update_attachment_metadata_for_image_size( $id, $metadata, $image_size ) ) { WP_CLI::log( "$progress Regenerated $thumbnail_desc for $att_desc." );