From 5601df601e7f31a97173025d5dc5d0dfe00cb427 Mon Sep 17 00:00:00 2001 From: Austin Gilmour Date: Fri, 15 May 2026 10:58:49 -0400 Subject: [PATCH 1/3] Modern Image Formats: link to FAQ from settings section MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds a brief note with a link to the plugin FAQ on WordPress.org in the Modern Image Formats settings section on Settings > Media. Users frequently open support topics confused about why uploads aren't generating AVIF/WebP files — the FAQ already explains the common reason (converted file discarded when larger than original), so the settings UI now points there rather than duplicating the text. Fixes #2442. Co-Authored-By: Claude Sonnet 4.6 --- plugins/webp-uploads/settings.php | 21 +++++++++++++++++++- plugins/webp-uploads/tests/test-settings.php | 12 +++++++++++ 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/plugins/webp-uploads/settings.php b/plugins/webp-uploads/settings.php index 78cccb2140..e4ae2c9d8c 100644 --- a/plugins/webp-uploads/settings.php +++ b/plugins/webp-uploads/settings.php @@ -70,6 +70,25 @@ function webp_uploads_register_media_settings_field(): void { } add_action( 'init', 'webp_uploads_register_media_settings_field' ); +/** + * Renders the description for the Modern Image Formats settings section. + * + * @since 3.10.0 + */ +function webp_uploads_modern_image_format_settings_section_callback(): void { + printf( + '

%s

', + wp_kses( + sprintf( + /* translators: %s: URL to the plugin FAQ on WordPress.org */ + __( 'If modern format images are not being generated after upload, see the FAQ for common reasons.', 'webp-uploads' ), + 'https://wordpress.org/plugins/webp-uploads/#faq' + ), + array( 'a' => array( 'href' => array() ) ) + ) + ); +} + /** * Adds media settings field for the 'perflab_generate_webp_and_jpeg' setting. * @@ -79,7 +98,7 @@ function webp_uploads_add_media_settings_fields(): void { add_settings_section( 'perflab_modern_image_format_settings', _x( 'Modern Image Formats', 'settings page section name', 'webp-uploads' ), - '__return_empty_string', + 'webp_uploads_modern_image_format_settings_section_callback', 'media', array( 'before_section' => '
', diff --git a/plugins/webp-uploads/tests/test-settings.php b/plugins/webp-uploads/tests/test-settings.php index 0d167b1d09..03ef68d847 100644 --- a/plugins/webp-uploads/tests/test-settings.php +++ b/plugins/webp-uploads/tests/test-settings.php @@ -7,6 +7,18 @@ class Test_WebP_Uploads_Settings extends WP_UnitTestCase { + /** + * @covers ::webp_uploads_modern_image_format_settings_section_callback + */ + public function test_webp_uploads_modern_image_format_settings_section_callback(): void { + ob_start(); + webp_uploads_modern_image_format_settings_section_callback(); + $output = ob_get_clean(); + + $this->assertStringContainsString( 'https://wordpress.org/plugins/webp-uploads/#faq', $output ); + $this->assertStringContainsString( ' Date: Fri, 15 May 2026 13:17:32 -0400 Subject: [PATCH 3/3] Modern Image Formats: use closure for settings section description, n.e.x.t version Co-Authored-By: Claude Sonnet 4.6 --- plugins/webp-uploads/settings.php | 33 ++++++++------------ plugins/webp-uploads/tests/test-settings.php | 24 ++++++-------- 2 files changed, 22 insertions(+), 35 deletions(-) diff --git a/plugins/webp-uploads/settings.php b/plugins/webp-uploads/settings.php index e4ae2c9d8c..95ccbb311b 100644 --- a/plugins/webp-uploads/settings.php +++ b/plugins/webp-uploads/settings.php @@ -70,25 +70,6 @@ function webp_uploads_register_media_settings_field(): void { } add_action( 'init', 'webp_uploads_register_media_settings_field' ); -/** - * Renders the description for the Modern Image Formats settings section. - * - * @since 3.10.0 - */ -function webp_uploads_modern_image_format_settings_section_callback(): void { - printf( - '

%s

', - wp_kses( - sprintf( - /* translators: %s: URL to the plugin FAQ on WordPress.org */ - __( 'If modern format images are not being generated after upload, see the
FAQ for common reasons.', 'webp-uploads' ), - 'https://wordpress.org/plugins/webp-uploads/#faq' - ), - array( 'a' => array( 'href' => array() ) ) - ) - ); -} - /** * Adds media settings field for the 'perflab_generate_webp_and_jpeg' setting. * @@ -98,7 +79,19 @@ function webp_uploads_add_media_settings_fields(): void { add_settings_section( 'perflab_modern_image_format_settings', _x( 'Modern Image Formats', 'settings page section name', 'webp-uploads' ), - 'webp_uploads_modern_image_format_settings_section_callback', + static function (): void { + printf( + '

%s

', + wp_kses( + sprintf( + /* translators: %s: URL to the plugin FAQ on WordPress.org */ + __( 'If modern format images are not being generated after upload, see the FAQ for common reasons.', 'webp-uploads' ), + 'https://wordpress.org/plugins/webp-uploads/#faq' + ), + array( 'a' => array( 'href' => array() ) ) + ) + ); + }, 'media', array( 'before_section' => '
', diff --git a/plugins/webp-uploads/tests/test-settings.php b/plugins/webp-uploads/tests/test-settings.php index def27ba3a0..52e8a09f86 100644 --- a/plugins/webp-uploads/tests/test-settings.php +++ b/plugins/webp-uploads/tests/test-settings.php @@ -8,29 +8,23 @@ class Test_WebP_Uploads_Settings extends WP_UnitTestCase { /** - * @covers ::webp_uploads_modern_image_format_settings_section_callback + * @covers ::webp_uploads_add_media_settings_fields */ - public function test_webp_uploads_modern_image_format_settings_section_callback(): void { + public function test_webp_uploads_add_media_settings_fields_section_description(): void { + global $wp_settings_sections; + webp_uploads_add_media_settings_fields(); + + $callback = $wp_settings_sections['media']['perflab_modern_image_format_settings']['callback']; + $this->assertIsCallable( $callback ); + ob_start(); - webp_uploads_modern_image_format_settings_section_callback(); + call_user_func( $callback ); $output = ob_get_clean(); $this->assertStringContainsString( 'https://wordpress.org/plugins/webp-uploads/#faq', $output ); $this->assertStringContainsString( '