说明
该标签基于各种参数(包括在管理界面中设置的参数),显示某篇日志或页面的所有评论。
用法
<?php wp_list_comments( $args ); ?>
默认用法
<?php $args = array(
'walker' => null,
'max_depth' => ,
'style' => 'ul',
'callback' => null,
'end-callback' => null,
'type' => 'all',
'page' => ,
'per_page' => ,
'avatar_size' => 32,
'reverse_top_level' => null,
'reverse_children' => ); ?>
用户也可以在管理面板的讨论菜单中对max_depth、per_page与reverse_top_level进行管理,这种方式更加方便。主题能够改写本函数设定的内容。
参数
avatar
(int)所显示头像的大小,以像素为单位。默认值为32。http://gravatar.com/可允许1到512像素的头像。
style
(字符串)该参数值可为'div'、'ol'或 'ul',分别可显示使用div标签的、有序或无序评论列表。默认值为'ul'。注意,其中的包含标签必须要明确显示,如
<div class="commentlist"><?php wp_list_comments(array('style' => 'div')); ?></div>
或
<ol class="commentlist"><?php wp_list_comments(array('style' => 'ol')); ?></ol>
type
(字符串)所显示评论的类型。可为'all', 'comment', 'trackback', 'pingback'或'pings'。'pings'是'trackback' 与 'pingback'的总称。默认值为'all'。
reply_text
(字符串)显示在评论中、作为回复链接的文本。(reply_text不是wp_list_comments的参数,但会被传递给get_comment_reply_link函数)。默认值为'Reply'。
login_text
(字符串)若用户评论前必须注册并登录,该参数所显示文本。(login_text不是wp_list_comments的参数,但会被传递给get_comment_reply_link函数)。默认值为'Log in to Reply'。
callback
(字符串)用以显示所有评论的自定义函数的函数名称。默认值为空。使用该参数将会调用自定义函数来显示所有评论。可在HTML布局变化后用该参数自定义评论。不推荐使用。
示例
默认用法
输出一个顺序已排列完毕的评论列表。评论的嵌套或分页可在管理面板的讨论菜单中设定。
<ol class="commentlist">
<?php wp_list_comments(); ?>
</ol>
自定义显示评论
当使用自定义的callback函数控制评论样式时,只显示用户评论(不显示pingback或trackback)。如果没有出现回复链接,可添加max_depth=X参数。
<ul class="commentlist">
<?php wp_list_comments('type=comment&callback=mytheme_comment'); ?>
</ul>
还需要在主题的functions.php文件中定义你的自定义callback函数。下面是一个示例:
function mytheme_comment($comment, $args, $depth) {
$GLOBALS['comment'] = $comment; ?>
<li <?php comment_class(); ?> id="li-comment-<?php comment_ID() ?>">
<div id="comment-<?php comment_ID(); ?>">
<div class="comment-author vcard">
<?php echo get_avatar($comment,$size='48',$default='<path_to_url>' ); ?>
<?php printf(__('<cite class="fn">%s</cite> <span class="says">says:</span>'), get_comment_author_link()) ?>
</div>
<?php if ($comment->comment_approved == '0') : ?>
<em><?php _e('Your comment is awaiting moderation.') ?></em>
<br />
<?php endif; ?>
<div class="comment-meta commentmetadata"><a href="<?php echo htmlspecialchars( get_comment_link( $comment->comment_ID ) ) ?>"><?php printf(__('%1$s at %2$s'), get_comment_date(), get_comment_time()) ?></a><?php edit_comment_link(__('(Edit)'),' ','') ?></div>
<?php comment_text() ?>
<div class="reply">
<?php comment_reply_link(array_merge( $args, array('depth' => $depth, 'max_depth' => $args['max_depth']))) ?>
</div>
</div>
<?php
}
可以注意到代码中缺少了一个结尾的</li>,WordPress会在列出所有子级分类后自动添加结尾</li>。
历史记录
该标签始见于WordPress 2.7.0
源文件
wp_list_comments()位于 wp-includes/comment-template.php
分类:中文手册