WordPress.org

Make WordPress Core

Ticket #30909: 30909.diff

File 30909.diff, 17.1 KB (added by Shelob9, 7 years ago)
  • wp-includes/comment-template.php

     
    175175         */
    176176        $email = apply_filters( 'comment_email', $comment->comment_author_email, $comment );
    177177        if ((!empty($email)) && ($email != '@')) {
    178         $display = ($linktext != '') ? $linktext : $email;
     178                $display = ($linktext != '') ? $linktext : $email;
    179179                $return  = $before;
    180180                $return .= "<a href='mailto:$email'>$display</a>";
    181                 $return .= $after;
     181                $return .= $after;
    182182                return $return;
    183183        } else {
    184184                return '';
     
    15421542                $text = __('Click here to cancel reply.');
    15431543
    15441544        $style = isset($_GET['replytocom']) ? '' : ' style="display:none;"';
    1545         $link = esc_html( remove_query_arg('replytocom') ) . '#respond';
    15461545
     1546        $reply_id = get_comment_container_id( true );
     1547
     1548        $link = esc_html( remove_query_arg('replytocom') ) . $reply_id;
     1549
    15471550        $formatted_link = '<a rel="nofollow" id="cancel-comment-reply-link" href="' . $link . '"' . $style . '>' . $text . '</a>';
    15481551        /**
    15491552         * Filter the cancel comment reply link HTML.
     
    18531856         */
    18541857        protected function ping( $comment, $depth, $args ) {
    18551858                $tag = ( 'div' == $args['style'] ) ? 'div' : 'li';
    1856 ?>
     1859                ?>
    18571860                <<?php echo $tag; ?> id="comment-<?php comment_ID(); ?>" <?php comment_class(); ?>>
    1858                         <div class="comment-body">
    1859                                 <?php _e( 'Pingback:' ); ?> <?php comment_author_link(); ?> <?php edit_comment_link( __( 'Edit' ), '<span class="edit-link">', '</span>' ); ?>
    1860                         </div>
    1861 <?php
     1861                <div class="comment-body">
     1862                        <?php _e( 'Pingback:' ); ?> <?php comment_author_link(); ?> <?php edit_comment_link( __( 'Edit' ), '<span class="edit-link">', '</span>' ); ?>
     1863                </div>
     1864        <?php
    18621865        }
    18631866
    18641867        /**
     
    18811884                        $tag = 'li';
    18821885                        $add_below = 'div-comment';
    18831886                }
    1884 ?>
     1887                ?>
    18851888                <<?php echo $tag; ?> <?php comment_class( $this->has_children ? 'parent' : '' ); ?> id="comment-<?php comment_ID(); ?>">
    18861889                <?php if ( 'div' != $args['style'] ) : ?>
    1887                 <div id="div-comment-<?php comment_ID(); ?>" class="comment-body">
     1890                        <div id="div-comment-<?php comment_ID(); ?>" class="comment-body">
    18881891                <?php endif; ?>
    18891892                <div class="comment-author vcard">
    18901893                        <?php if ( 0 != $args['avatar_size'] ) echo get_avatar( $comment, $args['avatar_size'] ); ?>
    18911894                        <?php printf( __( '<cite class="fn">%s</cite> <span class="says">says:</span>' ), get_comment_author_link() ); ?>
    18921895                </div>
    18931896                <?php if ( '0' == $comment->comment_approved ) : ?>
    1894                 <em class="comment-awaiting-moderation"><?php _e( 'Your comment is awaiting moderation.' ) ?></em>
    1895                 <br />
     1897                        <em class="comment-awaiting-moderation"><?php _e( 'Your comment is awaiting moderation.' ) ?></em>
     1898                        <br />
    18961899                <?php endif; ?>
    18971900
    18981901                <div class="comment-meta commentmetadata"><a href="<?php echo esc_url( get_comment_link( $comment->comment_ID, $args ) ); ?>">
    1899                         <?php
     1902                                <?php
    19001903                                /* translators: 1: date, 2: time */
    19011904                                printf( __( '%1$s at %2$s' ), get_comment_date(),  get_comment_time() ); ?></a><?php edit_comment_link( __( '(Edit)' ), '&nbsp;&nbsp;', '' );
    19021905                        ?>
     
    19151918                ?>
    19161919
    19171920                <?php if ( 'div' != $args['style'] ) : ?>
    1918                 </div>
     1921                        </div>
    19191922                <?php endif; ?>
    1920 <?php
     1923        <?php
    19211924        }
    19221925
    19231926        /**
     
    19341937         */
    19351938        protected function html5_comment( $comment, $depth, $args ) {
    19361939                $tag = ( 'div' === $args['style'] ) ? 'div' : 'li';
    1937 ?>
     1940                ?>
    19381941                <<?php echo $tag; ?> id="comment-<?php comment_ID(); ?>" <?php comment_class( $this->has_children ? 'parent' : '' ); ?>>
    1939                         <article id="div-comment-<?php comment_ID(); ?>" class="comment-body">
    1940                                 <footer class="comment-meta">
    1941                                         <div class="comment-author vcard">
    1942                                                 <?php if ( 0 != $args['avatar_size'] ) echo get_avatar( $comment, $args['avatar_size'] ); ?>
    1943                                                 <?php printf( __( '%s <span class="says">says:</span>' ), sprintf( '<b class="fn">%s</b>', get_comment_author_link() ) ); ?>
    1944                                         </div><!-- .comment-author -->
     1942                <article id="div-comment-<?php comment_ID(); ?>" class="comment-body">
     1943                        <footer class="comment-meta">
     1944                                <div class="comment-author vcard">
     1945                                        <?php if ( 0 != $args['avatar_size'] ) echo get_avatar( $comment, $args['avatar_size'] ); ?>
     1946                                        <?php printf( __( '%s <span class="says">says:</span>' ), sprintf( '<b class="fn">%s</b>', get_comment_author_link() ) ); ?>
     1947                                </div><!-- .comment-author -->
    19451948
    1946                                         <div class="comment-metadata">
    1947                                                 <a href="<?php echo esc_url( get_comment_link( $comment->comment_ID, $args ) ); ?>">
    1948                                                         <time datetime="<?php comment_time( 'c' ); ?>">
    1949                                                                 <?php printf( _x( '%1$s at %2$s', '1: date, 2: time' ), get_comment_date(), get_comment_time() ); ?>
    1950                                                         </time>
    1951                                                 </a>
    1952                                                 <?php edit_comment_link( __( 'Edit' ), '<span class="edit-link">', '</span>' ); ?>
    1953                                         </div><!-- .comment-metadata -->
     1949                                <div class="comment-metadata">
     1950                                        <a href="<?php echo esc_url( get_comment_link( $comment->comment_ID, $args ) ); ?>">
     1951                                                <time datetime="<?php comment_time( 'c' ); ?>">
     1952                                                        <?php printf( _x( '%1$s at %2$s', '1: date, 2: time' ), get_comment_date(), get_comment_time() ); ?>
     1953                                                </time>
     1954                                        </a>
     1955                                        <?php edit_comment_link( __( 'Edit' ), '<span class="edit-link">', '</span>' ); ?>
     1956                                </div><!-- .comment-metadata -->
    19541957
    1955                                         <?php if ( '0' == $comment->comment_approved ) : ?>
     1958                                <?php if ( '0' == $comment->comment_approved ) : ?>
    19561959                                        <p class="comment-awaiting-moderation"><?php _e( 'Your comment is awaiting moderation.' ); ?></p>
    1957                                         <?php endif; ?>
    1958                                 </footer><!-- .comment-meta -->
     1960                                <?php endif; ?>
     1961                        </footer><!-- .comment-meta -->
    19591962
    1960                                 <div class="comment-content">
    1961                                         <?php comment_text(); ?>
    1962                                 </div><!-- .comment-content -->
     1963                        <div class="comment-content">
     1964                                <?php comment_text(); ?>
     1965                        </div><!-- .comment-content -->
    19631966
    1964                                 <?php
    1965                                 comment_reply_link( array_merge( $args, array(
    1966                                         'add_below' => 'div-comment',
    1967                                         'depth'     => $depth,
    1968                                         'max_depth' => $args['max_depth'],
    1969                                         'before'    => '<div class="reply">',
    1970                                         'after'     => '</div>'
    1971                                 ) ) );
    1972                                 ?>
    1973                         </article><!-- .comment-body -->
    1974 <?php
     1967                        <?php
     1968                        comment_reply_link( array_merge( $args, array(
     1969                                'add_below' => 'div-comment',
     1970                                'depth'     => $depth,
     1971                                'max_depth' => $args['max_depth'],
     1972                                'before'    => '<div class="reply">',
     1973                                'after'     => '</div>'
     1974                        ) ) );
     1975                        ?>
     1976                </article><!-- .comment-body -->
     1977        <?php
    19751978        }
    19761979}
    19771980
     
    21602163 *     @type string $cancel_reply_link    The translatable 'cancel reply' button label. Default 'Cancel reply'.
    21612164 *     @type string $label_submit         The translatable 'submit' button label. Default 'Post a comment'.
    21622165 *     @type string $format               The comment form format. Default 'xhtml'. Accepts 'xhtml', 'html5'.
     2166 *     @type string $reply_title_id       The ID for the reply title H3 element. Default is 'reply-title'
    21632167 * }
    21642168 * @param int|WP_Post $post_id Post ID or WP_Post object to generate the form for. Default current post.
    21652169 */
     
    22152219                'cancel_reply_link'    => __( 'Cancel reply' ),
    22162220                'label_submit'         => __( 'Post Comment' ),
    22172221                'format'               => 'xhtml',
     2222                'reply_title_id'       => 'reply-title',
    22182223        );
    22192224
    22202225        /**
     
    22282233         */
    22292234        $args = wp_parse_args( $args, apply_filters( 'comment_form_defaults', $defaults ) );
    22302235
    2231                 if ( comments_open( $post_id ) ) : ?>
    2232                         <?php
    2233                         /**
    2234                          * Fires before the comment form.
    2235                          *
    2236                          * @since 3.0.0
    2237                          */
    2238                         do_action( 'comment_form_before' );
    2239                         ?>
    2240                         <div id="respond" class="comment-respond">
    2241                                 <h3 id="reply-title" class="comment-reply-title"><?php comment_form_title( $args['title_reply'], $args['title_reply_to'] ); ?> <small><?php cancel_comment_reply_link( $args['cancel_reply_link'] ); ?></small></h3>
    2242                                 <?php if ( get_option( 'comment_registration' ) && !is_user_logged_in() ) : ?>
    2243                                         <?php echo $args['must_log_in']; ?>
     2236        if ( comments_open( $post_id ) ) : ?>
     2237                <?php
     2238                /**
     2239                 * Fires before the comment form.
     2240                 *
     2241                 * @since 3.0.0
     2242                 */
     2243                do_action( 'comment_form_before' );
     2244                ?>
     2245                <div id="<?php echo esc_attr( get_comment_container_id( false ) ); ?>" class="comment-respond">
     2246                        <h3 id="<?php echo esc_attr( $args [ 'reply_title_id' ] ); ?>" class="comment-reply-title"><?php comment_form_title( $args['title_reply'], $args['title_reply_to'] ); ?> <small><?php cancel_comment_reply_link( $args['cancel_reply_link'] ); ?></small></h3>
     2247                        <?php if ( get_option( 'comment_registration' ) && !is_user_logged_in() ) : ?>
     2248                                <?php echo $args['must_log_in']; ?>
     2249                                <?php
     2250                                /**
     2251                                 * Fires after the HTML-formatted 'must log in after' message in the comment form.
     2252                                 *
     2253                                 * @since 3.0.0
     2254                                 */
     2255                                do_action( 'comment_form_must_log_in_after' );
     2256                                ?>
     2257                        <?php else : ?>
     2258                                <form action="<?php echo site_url( '/wp-comments-post.php' ); ?>" method="post" id="<?php echo esc_attr( $args['id_form'] ); ?>" class="comment-form"<?php echo $html5 ? ' novalidate' : ''; ?>>
    22442259                                        <?php
    22452260                                        /**
    2246                                          * Fires after the HTML-formatted 'must log in after' message in the comment form.
     2261                                         * Fires at the top of the comment form, inside the form tag.
    22472262                                         *
    22482263                                         * @since 3.0.0
    22492264                                         */
    2250                                         do_action( 'comment_form_must_log_in_after' );
     2265                                        do_action( 'comment_form_top' );
    22512266                                        ?>
    2252                                 <?php else : ?>
    2253                                         <form action="<?php echo site_url( '/wp-comments-post.php' ); ?>" method="post" id="<?php echo esc_attr( $args['id_form'] ); ?>" class="comment-form"<?php echo $html5 ? ' novalidate' : ''; ?>>
     2267                                        <?php if ( is_user_logged_in() ) : ?>
    22542268                                                <?php
    22552269                                                /**
    2256                                                  * Fires at the top of the comment form, inside the form tag.
     2270                                                 * Filter the 'logged in' message for the comment form for display.
    22572271                                                 *
    22582272                                                 * @since 3.0.0
     2273                                                 *
     2274                                                 * @param string $args_logged_in The logged-in-as HTML-formatted message.
     2275                                                 * @param array  $commenter      An array containing the comment author's
     2276                                                 *                               username, email, and URL.
     2277                                                 * @param string $user_identity  If the commenter is a registered user,
     2278                                                 *                               the display name, blank otherwise.
    22592279                                                 */
    2260                                                 do_action( 'comment_form_top' );
     2280                                                echo apply_filters( 'comment_form_logged_in', $args['logged_in_as'], $commenter, $user_identity );
    22612281                                                ?>
    2262                                                 <?php if ( is_user_logged_in() ) : ?>
    2263                                                         <?php
    2264                                                         /**
    2265                                                          * Filter the 'logged in' message for the comment form for display.
    2266                                                          *
    2267                                                          * @since 3.0.0
    2268                                                          *
    2269                                                          * @param string $args_logged_in The logged-in-as HTML-formatted message.
    2270                                                          * @param array  $commenter      An array containing the comment author's
    2271                                                          *                               username, email, and URL.
    2272                                                          * @param string $user_identity  If the commenter is a registered user,
    2273                                                          *                               the display name, blank otherwise.
    2274                                                          */
    2275                                                         echo apply_filters( 'comment_form_logged_in', $args['logged_in_as'], $commenter, $user_identity );
    2276                                                         ?>
    2277                                                         <?php
    2278                                                         /**
    2279                                                          * Fires after the is_user_logged_in() check in the comment form.
    2280                                                          *
    2281                                                          * @since 3.0.0
    2282                                                          *
    2283                                                          * @param array  $commenter     An array containing the comment author's
    2284                                                          *                              username, email, and URL.
    2285                                                          * @param string $user_identity If the commenter is a registered user,
    2286                                                          *                              the display name, blank otherwise.
    2287                                                          */
    2288                                                         do_action( 'comment_form_logged_in_after', $commenter, $user_identity );
    2289                                                         ?>
    2290                                                 <?php else : ?>
    2291                                                         <?php echo $args['comment_notes_before']; ?>
    2292                                                         <?php
    2293                                                         /**
    2294                                                          * Fires before the comment fields in the comment form.
    2295                                                          *
    2296                                                          * @since 3.0.0
    2297                                                          */
    2298                                                         do_action( 'comment_form_before_fields' );
    2299                                                         foreach ( (array) $args['fields'] as $name => $field ) {
    2300                                                                 /**
    2301                                                                  * Filter a comment form field for display.
    2302                                                                  *
    2303                                                                  * The dynamic portion of the filter hook, `$name`, refers to the name
    2304                                                                  * of the comment form field. Such as 'author', 'email', or 'url'.
    2305                                                                  *
    2306                                                                  * @since 3.0.0
    2307                                                                  *
    2308                                                                  * @param string $field The HTML-formatted output of the comment form field.
    2309                                                                  */
    2310                                                                 echo apply_filters( "comment_form_field_{$name}", $field ) . "\n";
    2311                                                         }
    2312                                                         /**
    2313                                                          * Fires after the comment fields in the comment form.
    2314                                                          *
    2315                                                          * @since 3.0.0
    2316                                                          */
    2317                                                         do_action( 'comment_form_after_fields' );
    2318                                                         ?>
    2319                                                 <?php endif; ?>
    23202282                                                <?php
    23212283                                                /**
    2322                                                  * Filter the content of the comment textarea field for display.
     2284                                                 * Fires after the is_user_logged_in() check in the comment form.
    23232285                                                 *
    23242286                                                 * @since 3.0.0
    23252287                                                 *
    2326                                                  * @param string $args_comment_field The content of the comment textarea field.
     2288                                                 * @param array  $commenter     An array containing the comment author's
     2289                                                 *                              username, email, and URL.
     2290                                                 * @param string $user_identity If the commenter is a registered user,
     2291                                                 *                              the display name, blank otherwise.
    23272292                                                 */
    2328                                                 echo apply_filters( 'comment_form_field_comment', $args['comment_field'] );
     2293                                                do_action( 'comment_form_logged_in_after', $commenter, $user_identity );
    23292294                                                ?>
    2330                                                 <?php echo $args['comment_notes_after']; ?>
    2331                                                 <p class="form-submit">
    2332                                                         <input name="<?php echo esc_attr( $args['name_submit'] ); ?>" type="submit" id="<?php echo esc_attr( $args['id_submit'] ); ?>" class="<?php echo esc_attr( $args['class_submit'] ); ?>" value="<?php echo esc_attr( $args['label_submit'] ); ?>" />
    2333                                                         <?php comment_id_fields( $post_id ); ?>
    2334                                                 </p>
     2295                                        <?php else : ?>
     2296                                                <?php echo $args['comment_notes_before']; ?>
    23352297                                                <?php
    23362298                                                /**
    2337                                                  * Fires at the bottom of the comment form, inside the closing </form> tag.
     2299                                                 * Fires before the comment fields in the comment form.
    23382300                                                 *
    2339                                                  * @since 1.5.0
     2301                                                 * @since 3.0.0
     2302                                                 */
     2303                                                do_action( 'comment_form_before_fields' );
     2304                                                foreach ( (array) $args['fields'] as $name => $field ) {
     2305                                                        /**
     2306                                                         * Filter a comment form field for display.
     2307                                                         *
     2308                                                         * The dynamic portion of the filter hook, `$name`, refers to the name
     2309                                                         * of the comment form field. Such as 'author', 'email', or 'url'.
     2310                                                         *
     2311                                                         * @since 3.0.0
     2312                                                         *
     2313                                                         * @param string $field The HTML-formatted output of the comment form field.
     2314                                                         */
     2315                                                        echo apply_filters( "comment_form_field_{$name}", $field ) . "\n";
     2316                                                }
     2317                                                /**
     2318                                                 * Fires after the comment fields in the comment form.
    23402319                                                 *
    2341                                                  * @param int $post_id The post ID.
     2320                                                 * @since 3.0.0
    23422321                                                 */
    2343                                                 do_action( 'comment_form', $post_id );
     2322                                                do_action( 'comment_form_after_fields' );
    23442323                                                ?>
    2345                                         </form>
    2346                                 <?php endif; ?>
    2347                         </div><!-- #respond -->
    2348                         <?php
    2349                         /**
    2350                          * Fires after the comment form.
    2351                          *
    2352                          * @since 3.0.0
    2353                          */
    2354                         do_action( 'comment_form_after' );
    2355                 else :
    2356                         /**
    2357                          * Fires after the comment form if comments are closed.
    2358                          *
    2359                          * @since 3.0.0
    2360                          */
    2361                         do_action( 'comment_form_comments_closed' );
    2362                 endif;
     2324                                        <?php endif; ?>
     2325                                        <?php
     2326                                        /**
     2327                                         * Filter the content of the comment textarea field for display.
     2328                                         *
     2329                                         * @since 3.0.0
     2330                                         *
     2331                                         * @param string $args_comment_field The content of the comment textarea field.
     2332                                         */
     2333                                        echo apply_filters( 'comment_form_field_comment', $args['comment_field'] );
     2334                                        ?>
     2335                                        <?php echo $args['comment_notes_after']; ?>
     2336                                        <p class="form-submit">
     2337                                                <input name="<?php echo esc_attr( $args['name_submit'] ); ?>" type="submit" id="<?php echo esc_attr( $args['id_submit'] ); ?>" class="<?php echo esc_attr( $args['class_submit'] ); ?>" value="<?php echo esc_attr( $args['label_submit'] ); ?>" />
     2338                                                <?php comment_id_fields( $post_id ); ?>
     2339                                        </p>
     2340                                        <?php
     2341                                        /**
     2342                                         * Fires at the bottom of the comment form, inside the closing </form> tag.
     2343                                         *
     2344                                         * @since 1.5.0
     2345                                         *
     2346                                         * @param int $post_id The post ID.
     2347                                         */
     2348                                        do_action( 'comment_form', $post_id );
     2349                                        ?>
     2350                                </form>
     2351                        <?php endif; ?>
     2352                </div><!-- #respond -->
     2353                <?php
     2354                /**
     2355                 * Fires after the comment form.
     2356                 *
     2357                 * @since 3.0.0
     2358                 */
     2359                do_action( 'comment_form_after' );
     2360        else :
     2361                /**
     2362                 * Fires after the comment form if comments are closed.
     2363                 *
     2364                 * @since 3.0.0
     2365                 */
     2366                do_action( 'comment_form_comments_closed' );
     2367        endif;
    23632368}
     2369
     2370/**
     2371 * Returns the ID to use for the comment from container.
     2372 *
     2373 * Can be used in HTML, when $with_hash is false, or to target the container in JavaScript, when $with_hash is true.
     2374 *
     2375 * @since 4.2.0
     2376 *
     2377 * @param bool $with_hash Optional. Whether to return with a hash (#) or not. Default is true.
     2378 *
     2379 * @return string
     2380 */
     2381function get_comment_container_id( $with_hash = true ) {
     2382
     2383        /**
     2384         * Modify the ID used for the comment reply container
     2385         *
     2386         * @since 4.2.0
     2387         *
     2388         * @param string $reply_id The ID to use
     2389         */
     2390        $reply_id = apply_filters( 'comment_container_id', 'respond' );
     2391        $reply_id = sanitize_title( $reply_id, 'respond' );
     2392        if ( $with_hash ) {
     2393                if ( ! strpos( $reply_id, '#' ) ) {
     2394                        $reply_id = '#' . $reply_id;
     2395                }
     2396        } else {
     2397                if ( strpos( $reply_id, '#' ) ) {
     2398                        $reply_id = str_replace( '#', '', $reply_id );
     2399                }
     2400        }
     2401
     2402        return $reply_id;
     2403
     2404}