From 902530bba9cff32ac372001fae678196cd967b67 Mon Sep 17 00:00:00 2001 From: Jb Audras Date: Fri, 12 Aug 2022 12:09:10 +0000 Subject: [PATCH] General: Add required fields helper functions for better reusability. This changeset introduces new `wp_required_field_indicator()` and `wp_required_field_message()` helper functions to generate reusable and consistent required field indicator and message. It also implements these functions in various admin screens. Props sabernhardt, ryokuhi, joedolson, audrasjb, SergeyBiryukov. Fixes #54394. git-svn-id: https://develop.svn.wordpress.org/trunk@53888 602fd350-edb4-49c9-b593-d223f7449a82 --- src/wp-admin/includes/media.php | 19 ++++++-------- src/wp-admin/network/site-new.php | 37 +++++++++++++++++++--------- src/wp-includes/comment-template.php | 11 +++------ src/wp-includes/general-template.php | 32 ++++++++++++++++++++++++ 4 files changed, 68 insertions(+), 31 deletions(-) diff --git a/src/wp-admin/includes/media.php b/src/wp-admin/includes/media.php index dd58fb0089..510fff563d 100644 --- a/src/wp-admin/includes/media.php +++ b/src/wp-admin/includes/media.php @@ -1703,8 +1703,7 @@ function get_media_item( $attachment_id, $args = null ) { \n \n

" . - /* translators: %s: Asterisk symbol (*). */ - sprintf( __( 'Required fields are marked %s' ), '*' ) . + wp_required_field_message() . "

\n"; $defaults = array( @@ -1784,7 +1783,7 @@ function get_media_item( $attachment_id, $args = null ) { continue; } - $required = $field['required'] ? '*' : ''; + $required = $field['required'] ? ' ' . wp_required_field_indicator() : ''; $required_attr = $field['required'] ? ' required' : ''; $class = $id; $class .= $field['required'] ? ' form-required' : ''; @@ -1975,7 +1974,7 @@ function get_compat_media_markup( $attachment_id, $args = null ) { } $readonly = ! $user_can_edit && ! empty( $field['taxonomy'] ) ? " readonly='readonly' " : ''; - $required = $field['required'] ? '*' : ''; + $required = $field['required'] ? ' ' . wp_required_field_indicator() : ''; $required_attr = $field['required'] ? ' required' : ''; $class = 'compat-field-' . $id; $class .= $field['required'] ? ' form-required' : ''; @@ -2031,8 +2030,7 @@ function get_compat_media_markup( $attachment_id, $args = null ) { if ( $item ) { $item = '

' . - /* translators: %s: Asterisk symbol (*). */ - sprintf( __( 'Required fields are marked %s' ), '*' ) . + wp_required_field_message() . '

' . '' . $item . '
'; } @@ -2929,13 +2927,12 @@ function wp_media_insert_url_form( $default_view = 'image' ) { return '

   

' . - /* translators: %s: Asterisk symbol (*). */ - sprintf( __( 'Required fields are marked %s' ), '*' ) . + wp_required_field_message() . '

@@ -2943,7 +2940,7 @@ function wp_media_insert_url_form( $default_view = 'image' ) { @@ -2952,7 +2949,7 @@ function wp_media_insert_url_form( $default_view = 'image' ) { diff --git a/src/wp-admin/network/site-new.php b/src/wp-admin/network/site-new.php index 06c759f1e1..0314d02af8 100644 --- a/src/wp-admin/network/site-new.php +++ b/src/wp-admin/network/site-new.php @@ -193,20 +193,19 @@ if ( ! empty( $messages ) ) { } } ?> -

-*' -); -?> -

+

- +
- +
- +

' . __( 'Alt text for the image, e.g. “The Mona Lisa”' ) . '

- + - + - + diff --git a/src/wp-includes/comment-template.php b/src/wp-includes/comment-template.php index d58b2fef58..f4cf72c258 100644 --- a/src/wp-includes/comment-template.php +++ b/src/wp-includes/comment-template.php @@ -2354,8 +2354,9 @@ function comment_form( $args = array(), $post = null ) { $required_attribute = ( $html5 ? ' required' : ' required="required"' ); $checked_attribute = ( $html5 ? ' checked' : ' checked="checked"' ); - // Identify required fields visually. - $required_indicator = ' '; + // Identify required fields visually and create a message about the indicator. + $required_indicator = ' ' . wp_required_field_indicator(); + $required_text = ' ' . wp_required_field_message(); $fields = array( 'author' => sprintf( @@ -2420,12 +2421,6 @@ function comment_form( $args = array(), $post = null ) { } } - $required_text = sprintf( - /* translators: %s: Asterisk symbol (*). */ - ' ', - trim( $required_indicator ) - ); - /** * Filters the default comment form fields. * diff --git a/src/wp-includes/general-template.php b/src/wp-includes/general-template.php index 0a12a590cf..3f042865ad 100644 --- a/src/wp-includes/general-template.php +++ b/src/wp-includes/general-template.php @@ -5021,6 +5021,38 @@ function __checked_selected_helper( $helper, $current, $echo, $type ) { // phpcs return $result; } +/** + * Assigns a visual indicator for required form fields. + * + * @since 6.1.0 + * + * @return string Indicator glyph wrapped in a `span` tag. + */ +function wp_required_field_indicator() { + /* translators: Character to identify required form fields. */ + $glyph = __( '*' ); + $indicator = ''; + + return $indicator; +} + +/** + * Creates a message to explain required form fields. + * + * @since 6.1.0 + * + * @return string Message text and glyph wrapped in a `span` tag. + */ +function wp_required_field_message() { + $message = sprintf( + '', + /* translators: %s: Asterisk symbol (*). */ + sprintf( __( 'Required fields are marked %s' ), wp_required_field_indicator() ) + ); + + return $message; +} + /** * Default settings for heartbeat. *