From 970f904de5789fa247b26c7eaeef245e5aab2a4f Mon Sep 17 00:00:00 2001 From: Jonathan Desrosiers Date: Wed, 5 May 2021 19:20:55 +0000 Subject: [PATCH] Site Health: Include more ImageMagick/Imagick information in the Media Handling section. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This adds additional information to the Media Handling section of the Site Health Info page. When ImageMagick is used as the site’s image editor, a full list of file formats supported will now be shown. This will help site owners debug any issues they encounter as support for newer, more modern image formats is added (such as WebP in [50810]). Additionally, the version of Imagick installed. This will help site owners debug issues with generating images on the PHP side. Some variables have also been renamed to more accurately represent what is being stored. Props Clorith, desrosj. Fixes #53022. git-svn-id: https://develop.svn.wordpress.org/trunk@50817 602fd350-edb4-49c9-b593-d223f7449a82 --- src/wp-admin/includes/class-wp-debug-data.php | 29 +++++++++++++++---- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/src/wp-admin/includes/class-wp-debug-data.php b/src/wp-admin/includes/class-wp-debug-data.php index f68233dd61..85ef2384c9 100644 --- a/src/wp-admin/includes/class-wp-debug-data.php +++ b/src/wp-admin/includes/class-wp-debug-data.php @@ -515,20 +515,27 @@ class WP_Debug_Data { // Get ImageMagic information, if available. if ( class_exists( 'Imagick' ) ) { // Save the Imagick instance for later use. - $imagick = new Imagick(); - $imagick_version = $imagick->getVersion(); + $imagick = new Imagick(); + $imagemagick_version = $imagick->getVersion(); } else { - $imagick_version = __( 'Not available' ); + $imagemagick_version = __( 'Not available' ); } $info['wp-media']['fields']['imagick_module_version'] = array( 'label' => __( 'ImageMagick version number' ), - 'value' => ( is_array( $imagick_version ) ? $imagick_version['versionNumber'] : $imagick_version ), + 'value' => ( is_array( $imagemagick_version ) ? $imagemagick_version['versionNumber'] : $imagemagick_version ), ); $info['wp-media']['fields']['imagemagick_version'] = array( 'label' => __( 'ImageMagick version string' ), - 'value' => ( is_array( $imagick_version ) ? $imagick_version['versionString'] : $imagick_version ), + 'value' => ( is_array( $imagemagick_version ) ? $imagemagick_version['versionString'] : $imagemagick_version ), + ); + + $imagick_version = phpversion( 'imagick' ); + + $info['wp-media']['fields']['imagick_version'] = array( + 'label' => __( 'Imagick version' ), + 'value' => ( $imagick_version ) ? $imagick_version : __( 'Not available' ), ); if ( ! function_exists( 'ini_get' ) ) { @@ -597,6 +604,18 @@ class WP_Debug_Data { 'value' => $limits, 'debug' => $limits_debug, ); + + try { + $formats = Imagick::queryFormats( '*' ); + } catch ( Exception $e ) { + $formats = array(); + } + + $info['wp-media']['fields']['imagemagick_file_formats'] = array( + 'label' => __( 'ImageMagick supported file formats' ), + 'value' => ( empty( $formats ) ) ? __( 'Unable to determine' ) : implode( ', ', $formats ), + 'debug' => ( empty( $formats ) ) ? 'Unable to determine' : implode( ', ', $formats ), + ); } // Get GD information, if available.