您应该使用wp_list_comments()
, 因为这将调用可以处理注释线程的Walker类:
// from wp_list_comments()
if ( empty($walker) )
$walker = new Walker_Comment;
$walker->paged_walk($_comments, $max_depth, $page, $per_page, $r);
Walker_Comment
处理注释的标记。您可以通过自定义助行器进行更改。
示例:
class Simple_Comment_Walker extends Walker_Comment
{
function start_el( &$output, $comment, $depth, $args, $id = 0 ) {
$depth++;
$GLOBALS[\'comment_depth\'] = $depth;
$GLOBALS[\'comment\'] = $comment;
print \'<li>\' . get_comment_author_link() . \'<br>\';
comment_text();
}
}
wp_list_comments( array ( \'walker\' => new Simple_Comment_Walker ) );
但是,如果只想更改单个注释标记,则不需要这样做。你可以通过
callback
参数到
wp_list_comments()
执行相同操作:
function simple_callback()
{
print \'<li>\' . get_comment_author_link() . \'<br>\';
comment_text();
}
wp_list_comments( array ( \'callback\' => \'simple_callback\' ) );
如果还想更改注释列表的容器元素,请使用自定义walker,如果只想更改单个注释,请使用回调。
您可以覆盖中的所有内容Walker_Comment
, 看见wp-includes/comment-template.php
有关详细信息。
记住你应该not close 第一个注释容器(在我的示例中<li>
), Walker在打印完整个线程后执行此操作。