下面的代码是WP中我的functions.php中的注释模板。它输出评论,每个评论都有一个回复链接。当有人回复评论时,上面写着
"回复评论作者姓名+评论日期"
在评论文本下方。点击这个链接,为了简单起见,我称之为"评论回复链接",可以返回到原始评论。到目前为止一切都很好。
每个注释的日期都以我选择的格式('MjYH:I')正确显示,这是在第一个printf函数中。评论日期将以以下格式显示"2012年2月10日10:35"。然而,"评论回复链接"中的日期以完全不同的日期格式显示:2012-02-10 10:35:17。如您所见,它还显示秒数。
下面代码中的最后一个printf函数输出"注释-回复链接"。我不知道这种不一致的格式是从哪里来的。它不在我的管理面板设置中,也无法在comments-template.php中找到。当我在phpmyadmin中打开数据库时,唯一显示错误格式的地方是注释表中的comment_date列。
如果有人能帮我获得与评论相同日期格式的"评论回复链接",我将不胜感激。
function mytheme_comment( $comment, $args, $depth ) {
$GLOBALS['comment'] = $comment;
switch ( $comment->comment_type ) :
case '' :
?>
<li <?php comment_class(); ?> id="li-comment-<?php comment_ID(); ?>">
<div id="comment-<?php comment_ID(); ?>">
<div class="comment-body">
<div class="comment-meta commentmetadata">
<div class="commenter-info"><span class="commenter"><?php printf( __( '%s', 'mytheme' ), sprintf( '<cite class="fn">%s</cite>', get_comment_author_link() ) ); ?><br/></span><!-- commenter -->
<div class="comment-date"><?php
/* translators: 1: date, 2: time */
printf( __( '%1$s', 'mytheme' ), get_comment_date('M j Y H:i') ); ?><?php edit_comment_link( __( 'Edit →', 'mytheme' ), ' ' );
?></div><!-- comment-date -->
</div><!-- commenter-info -->
<div class="comment-gravatar"><?php echo get_avatar( $comment, 65 ); ?></div>
<span class="reply">
<?php comment_reply_link( array_merge( $args, array( 'depth' => $depth, 'max_depth' => $args['max_depth'] ) ) ); ?>
<a class="comment-reply-link" href="?replytocom=<?php comment_ID(); ?>#respond" onclick="return addComment.moveForm('comment-<?php comment_ID(); ?>', '<?php comment_ID(); ?>', 'respond', '<?php echo $post->ID; ?>')">Reply</a>
</span><!-- reply -->
</div><!-- .comment-meta .commentmetadata -->
<div class="comment-content">
<?php comment_text(); ?>
</div><!-- comment-content -->
<?php
if ( $comment->comment_parent ) {
$parent = get_comment( $comment->comment_parent );
$parent_link = esc_url( get_comment_link( $comment->comment_parent ) );
printf( '<span id="replyto">In reply to <a href="%1$s">%2$s %3$s</a></span>', $parent_link, $parent->comment_author, $parent->comment_date );
} ?>
<?php if ( $comment->comment_approved == '0' ) : ?>
<p class="moderation"><?php _e( 'Your comment is moderated', 'mytheme' ); ?></p>
<?php endif; ?>
</div><!-- comment-body-->
</div><!-- #comment-## -->
看起来您需要重新格式化$parent->comment_date
。
尝试添加以下内容:
$date = DateTime::createFromFormat( 'Y-m-d H:i:s', $parent->comment_date);
$parent->comment_date = $date->format( 'M j Y H:i');
之前:
printf( '<span id="replyto">In reply to <a href="%1$s">%2$s %3$s</a></span>', $parent_link, $parent->comment_author, $parent->comment_date );