2022-08-19 16:16:27 +00:00
< ? php
/**
* Custom comment walker for this theme
*
* @ package WordPress
* @ subpackage Twenty_Nineteen
* @ since Twenty Nineteen 1.0
*/
/**
* This class outputs custom comment walker for HTML5 friendly WordPress comment and threaded replies .
*
* @ since Twenty Nineteen 1.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 " >
< ? php
/* translators: 1: Comment date, 2: Comment time. */
$comment_timestamp = sprintf ( __ ( '%1$s at %2$s' , 'twentynineteen' ), get_comment_date ( '' , $comment ), get_comment_time () );
printf (
'<a href="%s"><time datetime="%s" title="%s">%s</time></a>' ,
esc_url ( get_comment_link ( $comment , $args ) ),
get_comment_time ( 'c' ),
esc_attr ( $comment_timestamp ),
$comment_timestamp
);
$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
}
}