You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
128 lines
4.0 KiB
128 lines
4.0 KiB
<?php |
|
/** |
|
* Custom comment walker for this theme |
|
* |
|
* @package WordPress |
|
* @subpackage Twenty_Nineteen |
|
* @since 1.0.0 |
|
*/ |
|
|
|
/** |
|
* This class outputs custom comment walker for HTML5 friendly WordPress comment and threaded replies. |
|
* |
|
* @since 1.0.0 |
|
*/ |
|
class TwentyNineteen_Walker_Comment extends Walker_Comment { |
|
|
|
/** |
|
* Outputs a comment in the HTML5 format. |
|
* |
|
* @see wp_list_comments() |
|
* |
|
* @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; ?> 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 $avatar; |
|
} else { |
|
printf( '<a href="%s" rel="external nofollow" class="url">', $comment_author_url ); |
|
echo $avatar; |
|
} |
|
} |
|
|
|
/* |
|
* Using the `check` icon instead of `check_circle`, since we can't add a |
|
* fill color to the inner check shape when in circle form. |
|
*/ |
|
if ( twentynineteen_is_comment_by_post_author( $comment ) ) { |
|
printf( '<span class="post-author-badge" aria-hidden="true">%s</span>', twentynineteen_get_icon_svg( 'check', 24 ) ); |
|
} |
|
|
|
printf( |
|
wp_kses( |
|
/* translators: %s: Comment author link. */ |
|
__( '%s <span class="screen-reader-text says">says:</span>', 'twentynineteen' ), |
|
array( |
|
'span' => array( |
|
'class' => array(), |
|
), |
|
) |
|
), |
|
'<b class="fn">' . $comment_author . '</b>' |
|
); |
|
|
|
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', 'twentynineteen' ), get_comment_date( '', $comment ), get_comment_time() ); |
|
?> |
|
<time datetime="<?php comment_time( 'c' ); ?>" title="<?php echo $comment_timestamp; ?>"> |
|
<?php echo $comment_timestamp; ?> |
|
</time> |
|
</a> |
|
<?php |
|
$edit_comment_icon = twentynineteen_get_icon_svg( 'edit', 16 ); |
|
edit_comment_link( __( 'Edit', 'twentynineteen' ), '<span class="edit-link-sep">—</span> <span class="edit-link">' . $edit_comment_icon, '</span>' ); |
|
?> |
|
</div><!-- .comment-metadata --> |
|
|
|
<?php |
|
$commenter = wp_get_current_commenter(); |
|
if ( $commenter['comment_author_email'] ) { |
|
$moderation_note = __( 'Your comment is awaiting moderation.', 'twentynineteen' ); |
|
} else { |
|
$moderation_note = __( 'Your comment is awaiting moderation. This is a preview, your comment will be visible after it has been approved.', 'twentynineteen' ); |
|
} |
|
?> |
|
|
|
<?php if ( '0' == $comment->comment_approved ) : ?> |
|
<p class="comment-awaiting-moderation"><?php echo $moderation_note; ?></p> |
|
<?php endif; ?> |
|
|
|
</footer><!-- .comment-meta --> |
|
|
|
<div class="comment-content"> |
|
<?php comment_text(); ?> |
|
</div><!-- .comment-content --> |
|
|
|
</article><!-- .comment-body --> |
|
|
|
<?php |
|
comment_reply_link( |
|
array_merge( |
|
$args, |
|
array( |
|
'add_below' => 'div-comment', |
|
'depth' => $depth, |
|
'max_depth' => $args['max_depth'], |
|
'before' => '<div class="comment-reply">', |
|
'after' => '</div>', |
|
) |
|
) |
|
); |
|
?> |
|
<?php |
|
} |
|
}
|
|
|