Наглядный пример использования этой функции вы можете найти в моём видеоуроке.
Обычно эту функцию можно встретить внутри файла comments.php, где она находится для вывода комментариев к определённой записи / странице / CPT.
wp_list_comments( $args = array(), $comments = null )
В случае использования этой функции где-либо кроме вышеупомянутого случая, вам понадобится указать второй параметр.
<ul> (это я имею ввиду дочерние комменты), но мы можем указать значение ol, или даже div – тогда всё будет на дивах.
comment, существуют также пинги pings, которые в свою очередь ещё подразделяются на pingback и trackback. По умолчанию этот параметр имеет значение all – то есть выводит все типы, но вы можете указать только какой-либо определённый тип. 
32.true. По умолчанию – значение из настроек.
true, если вы хотите, чтобы дочерние комментарии выводились в обратном порядке.false, по умолчанию) или выводить (true) результат.functions.php, которая будет содержать HTML комментарияWalker_Comment, например new Misha_Comment().wp_list_comments() не там, где нужно, а именно за пределами подключенного функцией comments_template() файла, то сюда надо будет передать массив объектов WP_Comment, потому что он не будет существовать вероятно в виде глобального. Этот массив можно передать при помощи например функции get_comments().Самый изишный способ использования функции:
echo '<ul class="commentlist">' . wp_list_comments( array( 'echo' => false ) ) . '</ul>';
И ещё один пример, чтобы наверняка:
echo '<ol class="commentlist">'; wp_list_comments( array( 'style' => 'ol' ) ); echo '</ol>';
Давайте здесь рассмотрим параметры callback и end-callback, потому что в реальной жизни с ними приходится сталкиваться ну очень часто.
Сначала мы указываем эти параметры в функции:
wp_list_comments( array( 'callback' => 'misha_comment', 'end-callback' => 'misha_end_comment' ) );
Затем нам нужно создать эти функции внутри нашего файла functions.php:
function misha_comment( $comment, $args, $depth ){ ?><li <?php comment_class() ?> id="comment-<?php comment_ID() ?>"> <div class="comment-body"> <?php echo get_avatar( $comment, 70, '', '', array( 'class' => 'comment-avatar' ) ) ?> <div class="comment-content"> <span class="comment-author"><?php comment_author() ?></span> <span class="comment-date"><?php comment_date( 'j F Y в H:i' ) ?></span> <?php comment_text() ?> </div> </div> <?php // без закрывающего </li> (!) }
Прежде всего важное уточнение – это оооочень упрощённый код. Он рабочий безусловно, но для определённых параметров функции и для определённых настроек обсуждения. Например тут нет кода, который выводит уведомление, что коммент отправлен на модерацию, а также если вы вдруг захотите выводить комментарии при помощи тегов <div>, то эта функция вам не подойдэт, так как использует тег <li>.
В паре слов про этот код:
$comment – объект выводимого комментария, $args – тупо все параметры wp_list_comments(), $depth – глубина текущего комментария.id="comment-XXX" обязательно (!), потому что при публикации комментария пользователя редиректит к нему при помощи ссылки-якоря.Вопрос – а почему мы не закрыли тег <li> ? А потому что это нужно для корректного вывода дочерних комментариев + мы можем закрыть тег в нашей другой кастом функции – misha_end_comment().
function misha_end_comment( $comment, $args, $depth ){ echo '</li>'; }
В данном случае показан вывод по умолчанию, но вы теперь уже сами знаете, как его изменить, если захотите.
Чтобы оставить комментарий, пожалуйста, зарегистрируйтесь или войдите.
Thanks!