Как вызвать wp_list_comments () вне шаблона комментариев?

Я просто набираю wp_list_comments () в page.php, но ничего не отображается. Но если я помещаю там тэг comment_template (), то отображаются форма комментариев, комментарии и пинги. Почему это, почему я не могу использовать wp_list_comments () в page.php? Что я мог сделать неправильно?

Вы должны включить функции комментариев через comments_template() , потому что эта функция не просто включает файл comments.php , файл, но также обрабатывает все запросы и функции, необходимые для отображения комментариев.

В то время как Codex не вникает в детали , вы можете посмотреть, смотря на источник , что происходит:

 <?php /** * Loads the comment template specified in $file. * * Will not display the comments template if not on single post or page, or if * the post does not have comments. * * Uses the WordPress database object to query for the comments. The comments * are passed through the 'comments_array' filter hook with the list of comments * and the post ID respectively. * * The $file path is passed through a filter hook called, 'comments_template' * which includes the TEMPLATEPATH and $file combined. Tries the $filtered path * first and if it fails it will require the default comment template from the * default theme. If either does not exist, then the WordPress process will be * halted. It is advised for that reason, that the default theme is not deleted. * * @since 1.5.0 * @global array $comment List of comment objects for the current post * @uses $wpdb * @uses $post * @uses $withcomments Will not try to get the comments if the post has none. * * @param string $file Optional, default '/comments.php'. The file to load * @param bool $separate_comments Optional, whether to separate the comments by comment type. Default is false. * @return null Returns null if no comments appear */ ?> 

Попробуйте включить wp_list_comments () следующим образом:

 <ol class="commentlist"> <?php wp_list_comments();?> </ol> 

comments_template () просто загружает comments.php, который использует wp_list_comments в охватывающем классе CSS.

НТН