diff --git a/wp-admin/includes/media.php b/wp-admin/includes/media.php index bdfb65d103..8c27d15c17 100644 --- a/wp-admin/includes/media.php +++ b/wp-admin/includes/media.php @@ -2198,6 +2198,11 @@ function media_upload_form( $errors = null ) { $plupload_init['multi_selection'] = false; } + // Check if WebP images can be edited. + if ( ! wp_image_editor_supports( array( 'mime_type' => 'image/webp' ) ) ) { + $plupload_init['webp_upload_error'] = true; + } + /** * Filters the default Plupload settings. * diff --git a/wp-includes/js/plupload/handlers.js b/wp-includes/js/plupload/handlers.js index 7958e7231d..2560495b76 100644 --- a/wp-includes/js/plupload/handlers.js +++ b/wp-includes/js/plupload/handlers.js @@ -604,7 +604,12 @@ jQuery( document ).ready( function( $ ) { plupload.each( files, function( file ) { if ( file.type === 'image/heic' && up.settings.heic_upload_error ) { // Show error but do not block uploading. - wpQueueError( pluploadL10n.unsupported_image ) + wpQueueError( pluploadL10n.unsupported_image ); + } else if ( file.type === 'image/webp' && up.settings.webp_upload_error ) { + // Disallow uploading of WebP images if the server cannot edit them. + wpQueueError( pluploadL10n.noneditable_image ); + up.removeFile( file ); + return; } fileQueued( file ); diff --git a/wp-includes/js/plupload/handlers.min.js b/wp-includes/js/plupload/handlers.min.js index da6651ff93..ea8deccf13 100644 --- a/wp-includes/js/plupload/handlers.min.js +++ b/wp-includes/js/plupload/handlers.min.js @@ -1 +1 @@ -var uploader,uploader_init,topWin=window.dialogArguments||opener||parent||top;function fileQueued(e){jQuery(".media-blank").remove();var a=jQuery("#media-items").children(),r=post_id||0;1==a.length&&a.removeClass("open").find(".slidetoggle").slideUp(200),jQuery('
'+e+"
'+r+"
'+e+"
'+r+"