Codex tools: Log in
Languages: English • 日本語 • (Add your language)
Contents |
Displays all comments for a post or Page based on a variety of parameters including ones set in the administration area.
See also: Migrating Plugins and Themes to 2.7
<?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, and reverse_top_level can be more easily controlled through the Administration Panel Settings_Discussion_SubPanel but a theme can override those settings here.
This needs expanding / explaining.
<div class="commentlist"><?php wp_list_comments(array('style' => 'div')); ?></div>or<ol class="commentlist"><?php wp_list_comments(array('style' => 'ol')); ?></ol>
get_comment_reply_link function.)
get_comment_reply_link function.)
Outputs an ordered list of the comments. Things like threading or paging being enabled or disabled are controlled via the Settings Discussion SubPanel.
<ol class="commentlist"> <?php wp_list_comments(); ?> </ol>
Displays just comments (no pingbacks or trackbacks) while using a custom callback function to control the look of the comment. You may want to add an max_depth=X parameter, if the reply links are not appearing.
<ul class="commentlist">
<?php wp_list_comments('type=comment&callback=mytheme_comment'); ?>
</ul>
You will need to define your custom callback function in your theme's functions.php file. Here is an example:
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->comment_author_email, 48 ); ?>
<?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 esc_url( 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
}
Note the lack of a trailing </li>. WordPress will add it itself once it's done listing any children and whatnot.
Since: 2.7.0
wp_list_comments() is located in wp-includes/comment-template.php.
cancel_comment_reply_link(), comment_author(), comment_author_email(), comment_author_email_link(), comment_author_IP(), comment_author_link(), comment_author_rss(), comment_author_url(), comment_author_url_link(), comment_class(), comment_date(), comment_excerpt(), comment_form_title(), comment_form(), comment_ID(), comment_id_fields(), comment_reply_link(), comment_text(), comment_text_rss(), comment_time(), comment_type(), comments_link, comments_number(), comments_popup_link(), comments_popup_script(), comments_rss_link(), get_avatar(), next_comments_link(), paginate_comments_links(), permalink_comments_rss(), previous_comments_link(), wp_list_comments()
wp_list_authors(), wp_list_categories(), wp_list_pages(), wp_list_bookmarks(), wp_list_comments(), wp_get_archives(), wp_page_menu(), wp_dropdown_pages(), wp_dropdown_categories(), wp_dropdown_users()