Make WordPress Core

Changeset 52029


Ignore:
Timestamp:
11/07/2021 09:13:11 PM (3 months 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.