Make WordPress Core

Changeset 52029


Ignore:
Timestamp:
11/07/2021 09:13:11 PM (5 years ago)
Author:
joedolson
Message:

Comments: Mark comment text field as required.

Add required asterisk to the comment text field. Historically, the name and email fields are marked as required, but the comment text field is not, though it is actually a required field.

Props infected, solarissmoke, rianrietveld, afercia, sabernhardt, strider72, mai21, audrasjb.
Fixes #16206.

Location:
trunk/src/wp-includes
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/comment-template.php

    r51837 r52029  
    23512351        }
    23522352
    2353         $req      = get_option( 'require_name_email' );
    2354         $html_req = ( $req ? " required='required'" : '' );
    2355         $html5    = 'html5' === $args['format'];
     2353        $req   = get_option( 'require_name_email' );
     2354        $html5 = 'html5' === $args['format'];
     2355
     2356        // Define attributes in HTML5 or XHTML syntax.
     2357        $required_attribute = ( $html5 ? ' required' : ' required="required"' );
     2358        $checked_attribute  = ( $html5 ? ' checked' : ' checked="checked"' );
     2359
     2360        // Identify required fields visually.
     2361        $required_indicator = ' <span class="required" aria-hidden="true">*</span>';
    23562362
    23572363        $fields = array(
     
    23612367                                '<label for="author">%s%s</label>',
    23622368                                __( 'Name' ),
    2363                                 ( $req ? ' <span class="required">*</span>' : '' )
     2369                                ( $req ? $required_indicator : '' )
    23642370                        ),
    23652371                        sprintf(
    23662372                                '<input id="author" name="author" type="text" value="%s" size="30" maxlength="245"%s />',
    23672373                                esc_attr( $commenter['comment_author'] ),
    2368                                 $html_req
     2374                                ( $req ? $required_attribute : '' )
    23692375                        )
    23702376                ),
     
    23742380                                '<label for="email">%s%s</label>',
    23752381                                __( 'Email' ),
    2376                                 ( $req ? ' <span class="required">*</span>' : '' )
     2382                                ( $req ? $required_indicator : '' )
    23772383                        ),
    23782384                        sprintf(
     
    23802386                                ( $html5 ? 'type="email"' : 'type="text"' ),
    23812387                                esc_attr( $commenter['comment_author_email'] ),
    2382                                 $html_req
     2388                                ( $req ? $required_attribute : '' )
    23832389                        )
    23842390                ),
     
    23982404
    23992405        if ( has_action( 'set_comment_cookies', 'wp_set_comment_cookies' ) && get_option( 'show_comments_cookies_opt_in' ) ) {
    2400                 $consent = empty( $commenter['comment_author_email'] ) ? '' : ' checked="checked"';
     2406                $consent = empty( $commenter['comment_author_email'] ) ? '' : $checked_attribute;
    24012407
    24022408                $fields['cookies'] = sprintf(
     
    24202426        $required_text = sprintf(
    24212427                /* translators: %s: Asterisk symbol (*). */
    2422                 ' ' . __( 'Required fields are marked %s' ),
    2423                 '<span class="required">*</span>'
     2428                ' <span class="comment-required-message" aria-hidden="true">' . __( 'Required fields are marked %s' ) . '</span>',
     2429                trim( $required_indicator )
    24242430        );
    24252431
     
    24382444                        '<p class="comment-form-comment">%s %s</p>',
    24392445                        sprintf(
    2440                                 '<label for="comment">%s</label>',
    2441                                 _x( 'Comment', 'noun' )
     2446                                '<label for="comment">%s%s</label>',
     2447                                _x( 'Comment', 'noun' ),
     2448                                $required_indicator
    24422449                        ),
    2443                         '<textarea id="comment" name="comment" cols="45" rows="8" maxlength="65525" required="required"></textarea>'
     2450                        '<textarea id="comment" name="comment" cols="45" rows="8" maxlength="65525"' . $required_attribute . '></textarea>'
    24442451                ),
    24452452                'must_log_in'          => sprintf(
     
    24532460                ),
    24542461                'logged_in_as'         => sprintf(
    2455                         '<p class="logged-in-as">%s</p>',
     2462                        '<p class="logged-in-as">%s%s</p>',
    24562463                        sprintf(
    24572464                                /* translators: 1: Edit user link, 2: Accessibility text, 3: User name, 4: Logout URL. */
     
    24632470                                /** This filter is documented in wp-includes/link-template.php */
    24642471                                wp_logout_url( apply_filters( 'the_permalink', get_permalink( $post_id ), $post_id ) )
    2465                         )
     2472                        ),
     2473                        $required_text
    24662474                ),
    24672475                'comment_notes_before' => sprintf(
     
    24712479                                __( 'Your email address will not be published.' )
    24722480                        ),
    2473                         ( $req ? $required_text : '' )
     2481                        $required_text
    24742482                ),
    24752483                'comment_notes_after'  => '',
  • trunk/src/wp-includes/comment.php

    r51837 r52029  
    35503550        if ( get_option( 'require_name_email' ) && ! $user->exists() ) {
    35513551                if ( '' == $comment_author_email || '' == $comment_author ) {
    3552                         return new WP_Error( 'require_name_email', __( '<strong>Error</strong>: Please fill the required fields (name, email).' ), 200 );
     3552                        return new WP_Error( 'require_name_email', __( '<strong>Error</strong>: Please fill the required fields.' ), 200 );
    35533553                } elseif ( ! is_email( $comment_author_email ) ) {
    35543554                        return new WP_Error( 'require_valid_email', __( '<strong>Error</strong>: Please enter a valid email address.' ), 200 );
Note: See TracChangeset for help on using the changeset viewer.