wp_list_comments描述
根据各种参数(包括在管理区域中设置的参数)显示帖子或页面的所有评论。
wp_list_comments用法
- <?php wp_list_comments($ args,$ comments); ?>
wp_list_comments默认使用
$args
(array)(optional)该函数的选项。
默认如下:
- <?php $ args = array(
- 'walker'=> null,
- 'max_depth'=>'',
- 'style'=>'ul',
- 'callback'=> null,
- 'end-callback'=> null,
- 'type'=>'all',
- 'reply_text'=>'reply',
- 'page'=>'',
- 'per_page'=>'',
- 'avatar_size'=> 32,
- 'reverse_top_level'=> null,
- 'reverse_children'=>'',
- 'format'=>'html5',//或'xhtml'如果没有'HTML5'主题支持
- 'short_ping'=> false,// 3.6版本以后支持
- 'echo'=> true //布尔值,默认为true
- ); ?>
通过“讨论设置”管理面板可以更轻松地控制“max_depth”,“per_page”和“reverse_top_level”参数,但主题可以覆盖这些设置。
$comments
(array)(optional)通过get_comments查询获取的数组。
默认值:get_comments的默认返回值。
wp_list_comments具体参数
“walker”
(Walker object)提供一个自定义的Walker类对象,用于渲染注释。这是自定义评论HTML的主要方法。
<?PHP
wp_list_comments(array(
'walker'=> new Walker_Comment()
));
'MAX_DEPTH'
(整数)应该提取评论多深(在评论回复中)。
'样式'
(字符串)可以是'div','ol'或'ul'(默认)。请注意,任何包含标签必须明确写入。例如:
- <div class =“comment list”>
- <?php wp_list_comments(array('style'=>'div')); ?>
- </ DIV>
或者
- <ol class =“comment list”>
- <?php wp_list_comments(array('style'=>'ol')); ?>
- </ol>
'callback'
(callback)用于打开和显示每个注释的自定义函数的名称。使用这将使您的自定义函数被调用来显示每个评论,绕过这方面的所有内部WordPress的功能。使用自定义注释显示对HTML布局的极端更改。请注意,您的回调必须包含打开的<div>,<ol>或<ul>标记(与style参数对应),但不包含结束标记。 WordPress会自动提供结束标签,或者您可以使用结束回调来覆盖此默认值。回调与回调结束分开以便于分层评论。谨慎使用。
“end-callback”
(callback)用于关闭每个注释的自定义函数的名称。使用这个命令可以在每个注释结束时调用自定义函数,绕过基于style参数使用</ div>,</ ol>或</ li>的WordPress默认设置。用于自定义评论的结束标签。回调与回调结束分开以便于分层评论。谨慎使用。
'type'
(string)要显示的评论的类型。可以是“全部”,“评论”,“引用”,“pingback”或“ping”。 “ping”同时是“trackback”和“pingback”。
'REPLY_TEXT'
(string)在每个评论中显示的文本作为回复链接。 (这不是这个函数的参数,但它传递给get_comment_reply_link函数。)
'page'
(integer)在分页中显示的当前页面。
'per_page'
(integer)每个评论页面显示的项目数量。
'avatar_size'
(integer)头像应显示的大小(以像素为单位)。 http://gravatar.com/支持1到512之间的大小。使用0隐藏头像。
'reverse_top_level'
(boolean)将其设置为true将显示最近的评论,然后按顺序返回,将其设置为false将显示最早的评论。如果没有指定,它将使用存储在WordPress仪表板设置中的值。
'reverse_children'
(boolean)将其设置为true将显示最近的那些子级(回复级别注释),然后依次返回。
'format'
(boolean)可以设置为'html5'或'xhtml' - 默认为主题的current_theme_supports('html5')设置。
'short_ping'
(boolean)是否要使用简短的ping。
'echo'
(boolean)是否回显列表或只是返回它。
wp_list_comments例子
默认使用
输出评论的有序列表。像线程或分页被启用或禁用的东西通过设置讨论子面板进行控制。
- <ol class =“commentlist”>
- <?php wp_list_comments(); ?>
- </ol>
仅具有自定义注释显示的注释
仅使用自定义回调函数来控制注释的外观时显示注释(无pingbacks或trackbacks)。如果回复链接没有出现,您可能需要添加一个max_depth = X参数。
- <ul class =“commentlist”>
- <?php wp_list_comments('type = comment&callback = mytheme_comment'); ?>
- </ul>
您将需要在主题的functions.php文件中定义自定义回调函数。这里是一个例子:
- function mytheme_comment($comment, $args, $depth) {
- if ( 'div' === $args['style'] ) {
- $tag = 'div';
- $add_below = 'comment';
- } else {
- $tag = 'li';
- $add_below = 'div-comment';
- }?>
- <<?php echo $tag; comment_class( emptyempty( $args['has_children'] ) ? '' : 'parent' ); ?> id="comment-<?php comment_ID() ?>"><?php
- if ( 'div' != $args['style'] ) { ?>
- <div id="div-comment-<?php comment_ID() ?>" class="comment-body"><?php
- } ?>
- <div class="comment-author vcard"><?php
- if ( $args['avatar_size'] != 0 ) {
- echo get_avatar( $comment, $args['avatar_size'] );
- }
- printf( __( '<cite class="fn">%s</cite> <span class="says">says:</span>' ), get_comment_author_link() ); ?>
- </div><?php
- if ( $comment->comment_approved == '0' ) { ?>
- <em class="comment-awaiting-moderation"><?php _e( 'Your comment is awaiting moderation.' ); ?></em><br/><?php
- } ?>
- <div class="comment-meta commentmetadata">
- <a href="<?php echo htmlspecialchars( get_comment_link( $comment->comment_ID ) ); ?>"><?php
- /* translators: 1: date, 2: time */
- 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(
- 'add_below' => $add_below,
- 'depth' => $depth,
- 'max_depth' => $args['max_depth']
- )
- )
- ); ?>
- </div><?php
- if ( 'div' != $args['style'] ) : ?>
- </div><?php
- endif;
- }
请注意缺少尾部</ li>。为了适应嵌套的回复,WordPress会在列出任何子元素之后添加适当的结束标签。
显示特定页面/帖子的评论
输出特定页面或帖子的有序评论列表。像线程或分页被启用或禁用的东西通过设置讨论子面板进行控制。
- <ol class =“commentlist”>
- <?php
- //收集特定页面/帖子的评论
- $ comments = get_comments(array(
- 'post_id'=> XXX,
- 'status'=>'approve'//将其更改为要显示的评论类型
- ));
- //显示评论列表
- wp_list_comments(array(
- 'per_page'=> 10,//允许评论分页
- 'reverse_top_level'=> false //在列表顶部显示最旧的评论
- ),$ comments);
- ?>
- </ol>