123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142 |
- <?php
- /**
- * Custom comment walker for this theme.
- *
- * @package WordPress
- * @subpackage Twenty_Twenty
- * @since Twenty Twenty 1.0
- */
- if ( ! class_exists( 'TwentyTwenty_Walker_Comment' ) ) {
- /**
- * CUSTOM COMMENT WALKER
- * A custom walker for comments, based on the walker in Twenty Nineteen.
- */
- class TwentyTwenty_Walker_Comment extends Walker_Comment {
- /**
- * Outputs a comment in the HTML5 format.
- *
- * @see wp_list_comments()
- * @see https://developer.wordpress.org/reference/functions/get_comment_author_url/
- * @see https://developer.wordpress.org/reference/functions/get_comment_author/
- * @see https://developer.wordpress.org/reference/functions/get_avatar/
- * @see https://developer.wordpress.org/reference/functions/get_comment_reply_link/
- * @see https://developer.wordpress.org/reference/functions/get_edit_comment_link/
- *
- * @param WP_Comment $comment Comment to display.
- * @param int $depth Depth of the current comment.
- * @param array $args An array of arguments.
- */
- protected function html5_comment( $comment, $depth, $args ) {
- $tag = ( 'div' === $args['style'] ) ? 'div' : 'li';
- ?>
- <<?php echo $tag; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- static output ?> id="comment-<?php comment_ID(); ?>" <?php comment_class( $this->has_children ? 'parent' : '', $comment ); ?>>
- <article id="div-comment-<?php comment_ID(); ?>" class="comment-body">
- <footer class="comment-meta">
- <div class="comment-author vcard">
- <?php
- $comment_author_url = get_comment_author_url( $comment );
- $comment_author = get_comment_author( $comment );
- $avatar = get_avatar( $comment, $args['avatar_size'] );
- if ( 0 !== $args['avatar_size'] ) {
- if ( empty( $comment_author_url ) ) {
- echo wp_kses_post( $avatar );
- } else {
- printf( '<a href="%s" rel="external nofollow" class="url">', $comment_author_url ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped --Escaped in https://developer.wordpress.org/reference/functions/get_comment_author_url/
- echo wp_kses_post( $avatar );
- }
- }
- printf(
- '<span class="fn">%1$s</span><span class="screen-reader-text says">%2$s</span>',
- esc_html( $comment_author ),
- __( 'says:', 'twentytwenty' )
- );
- if ( ! empty( $comment_author_url ) ) {
- echo '</a>';
- }
- ?>
- </div><!-- .comment-author -->
- <div class="comment-metadata">
- <a href="<?php echo esc_url( get_comment_link( $comment, $args ) ); ?>">
- <?php
- /* translators: 1: Comment date, 2: Comment time. */
- $comment_timestamp = sprintf( __( '%1$s at %2$s', 'twentytwenty' ), get_comment_date( '', $comment ), get_comment_time() );
- ?>
- <time datetime="<?php comment_time( 'c' ); ?>" title="<?php echo esc_attr( $comment_timestamp ); ?>">
- <?php echo esc_html( $comment_timestamp ); ?>
- </time>
- </a>
- <?php
- if ( get_edit_comment_link() ) {
- echo ' <span aria-hidden="true">•</span> <a class="comment-edit-link" href="' . esc_url( get_edit_comment_link() ) . '">' . __( 'Edit', 'twentytwenty' ) . '</a>';
- }
- ?>
- </div><!-- .comment-metadata -->
- </footer><!-- .comment-meta -->
- <div class="comment-content entry-content">
- <?php
- comment_text();
- if ( '0' === $comment->comment_approved ) {
- ?>
- <p class="comment-awaiting-moderation"><?php _e( 'Your comment is awaiting moderation.', 'twentytwenty' ); ?></p>
- <?php
- }
- ?>
- </div><!-- .comment-content -->
- <?php
- $comment_reply_link = get_comment_reply_link(
- array_merge(
- $args,
- array(
- 'add_below' => 'div-comment',
- 'depth' => $depth,
- 'max_depth' => $args['max_depth'],
- 'before' => '<span class="comment-reply">',
- 'after' => '</span>',
- )
- )
- );
- $by_post_author = twentytwenty_is_comment_by_post_author( $comment );
- if ( $comment_reply_link || $by_post_author ) {
- ?>
- <footer class="comment-footer-meta">
- <?php
- if ( $comment_reply_link ) {
- echo $comment_reply_link; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- Link is escaped in https://developer.wordpress.org/reference/functions/get_comment_reply_link/
- }
- if ( $by_post_author ) {
- echo '<span class="by-post-author">' . __( 'By Post Author', 'twentytwenty' ) . '</span>';
- }
- ?>
- </footer>
- <?php
- }
- ?>
- </article><!-- .comment-body -->
- <?php
- }
- }
- }
|