📅  最后修改于: 2023-12-03 14:48:32.722000             🧑  作者: Mango
WordPress 是一款广泛使用的开源内容管理系统,支持多种扩展和插件。在 WordPress 的博客页面中,我们可以添加评论功能来让用户互动,但是有时我们需要对评论进行编号来方便管理和统计。本文将介绍如何使用 PHP 在 WordPress 中显示帖子评论编号。
在 WordPress 中,每条评论都有一个唯一的 comment_ID
属性,我们可以利用这个属性来获取评论编号。下面是获取评论编号并输出的 PHP 代码:
$comments = get_comments( array(
'post_id' => get_the_ID(),
'orderby' => 'comment_date_gmt',
'order' => 'ASC',
) );
$counter = 1;
foreach ( $comments as $comment ) {
printf( '<p>%d. %s</p>', $counter, get_comment_text( $comment ) );
$counter++;
}
首先使用 get_comments()
函数获取当前文章的所有评论,并按照时间升序排序。然后使用 $counter
变量来计数,循环遍历每条评论并输出带有编号的评论内容。
我们可以将上述代码添加到 WordPress 博客页面的主题模板中,例如 single.php
或 comments.php
文件中。下面是一个简单的示例,将评论编号加入到默认 WordPress 主题中:
<?php
if ( have_comments() ) :
$comments_number = get_comments_number();
?>
<div class="comments-area" id="comments">
<h2 class="comments-title">
<?php
if ( 1 === $comments_number ) {
printf(
/* translators: 1: title. */
esc_html__( 'One thought on “%1$s”', 'theme_name' ),
'<span>' . esc_html( get_the_title() ) . '</span>'
);
} else {
printf(
/* translators: 1: number of comments. 2: title. */
esc_html( _nx( '%1$s thought on “%2$s”', '%1$s thoughts on “%2$s”', $comments_number, 'comments title', 'theme_name' ) ),
number_format_i18n( $comments_number ),
'<span>' . esc_html( get_the_title() ) . '</span>'
);
}
?>
</h2>
<?php
the_comments_pagination( array(
'prev_text' => esc_html__( '« Prev', 'theme_name' ),
'next_text' => esc_html__( 'Next »', 'theme_name' ),
) );
?>
<ol class="comment-list">
<?php
$comments = get_comments( array(
'post_id' => get_the_ID(),
'orderby' => 'comment_date_gmt',
'order' => 'ASC',
) );
$counter = 1;
foreach ( $comments as $comment ) :
?>
<li>
<article id="comment-<?php comment_ID(); ?>">
<header class="comment-header">
<div class="comment-author vcard">
<?php echo get_avatar( $comment, 48 ); ?>
<?php printf( '<cite class="comment-author-name">%s</cite>', get_comment_author_link() ); ?>
<?php printf( '<time datetime="%s">%s</time>', get_comment_time( 'c' ), get_comment_date() ); ?>
<?php edit_comment_link( esc_html__( 'Edit', 'theme_name' ), '<span class="edit-link">', '</span>' ); ?>
</div>
</header>
<div class="comment-content">
<?php comment_text(); ?>
</div>
<footer class="comment-footer">
<?php
comment_reply_link( array_merge( $args, array(
'depth' => $depth,
'max_depth' => $args['max_depth'],
'before' => '<p class="reply">',
'after' => '</p>',
) ) );
?>
</footer>
</article>
</li>
<?php
$counter++;
endforeach; // end foreach
?>
</ol>
<?php
the_comments_pagination( array(
'prev_text' => esc_html__( '« Prev', 'theme_name' ),
'next_text' => esc_html__( 'Next »', 'theme_name' ),
) );
?>
<?php if ( ! comments_open() && get_comments_number() ) : ?>
<p class="comments-closed"><?php esc_html_e( 'Comments are closed.', 'theme_name' ); ?></p>
<?php endif; ?>
</div>
<?php
endif; // end have_comments()
在上述示例代码中,我们首先使用 have_comments()
函数判断当前文章是否有评论,如果有则输出评论编号。在循环遍历评论时,我们使用 $counter
变量来计数并输出编号。最后使用 the_comments_pagination()
函数输出评论的分页导航。
如上所述,通过上述代码示例,您现在可以显示 WordPress 中的帖子评论编号,使您的页面更易于管理和统计。实际使用时,您可能需要根据具体情况调整代码逻辑或样式。祝您使用愉快!