Помогите разобраться как WP 2.7 выводит комментарии к статье размещенной в рубрике.
Есть index.php, где условием проверяю к какому разделу WP произведен CGI запрос.
if( is_front_page() ) :
echo "<h1>Главная страница</h1>";
elseif( is_category() ) :
include (TEMPLATEPATH . ‘/cat.php’);
elseif( is_page() ) :
echo "<h1>Страницы</h1>";
elseif( is_single() ) :
include (TEMPLATEPATH . ‘/catart.php’);
else :
echo "<h1>В противном случае!</h1>";
endif;
В случае если запрос был произведен к статье конкретной рубрики (например http://myblog/?p=65), то отрабатывает условие elseif( is_single() ) и подключается файл catart.php. Этот файл по моей задумке должен выводить статью полностью и комментарии к ней. Вот его содержимое.
<h3>Статья <?php wp_title(‘»’, true, ‘left’); ?></h3>
<div align="justify">
<?php the_post(); the_content(); ?>
</div>
<hr>
<div>Статья размещена в рубрике: <?php the_category(‘, ‘); ?></div>
<div>Статья изменена: <?php the_modified_date(); ?></div>
<div>Статья создана: <?php the_date(); ?></div>
<div>Коментариев: <?php comments_number(‘нет’,’1′,’%’); ?></div>
<hr>
Весь выше перечисленный код исполняется корректно или во всяком случае так как мне надо, но а дальше когда дело доходит до отображения комментариев, функция wp_list_comments(); не отрабатывает вообще при отсутствии условия if ( have_comments() ) . В случае наличия условия if ( have_comments() ), оно условие не отрабатывает. В результате выдается значение «If comments are open, but there are no comments»
<?php if ( have_comments() ) : ?>
<h4 id="comments"><?php comments_number(‘Нет комментариев’, ‘Один комментарий’, ‘Комментарии % ‘ );?></h4>
<ul class="commentlist">
<?php wp_list_comments(); ?></ul>
<div class="navigation">
<div class="alignleft"><?php previous_comments_link() ?></div>
<div class="alignright"><?php next_comments_link() ?></div>
</div>
<?php else : // this is displayed if there are no comments so far ?>
<?php if (‘open’ == $post->comment_status) :
// If comments are open, but there are no comments.
echo "<h1>f comments are open, but there are no comments</h1>";
else : // comments are closed
echo "<h1>omments are closed</h1>";
endif;
endif;
?>
Ps: Старался придерживаться следующей статьи в codex http://codex.wordpress.org/Migrating_Plugins_and_Themes_to_2.7/Enhanced_Comment_Display.
Может я что не правильно понял?
Комментарии подключаются на страницу запросом comments_template(). Эта функция первым делом заполняет массив $comments. В версии 2.7 появилась еще функция get_comments(). В Кодексе ее пока нет (точнее, я не встречал), что она делает – смотрите в файле /wp-includes/comment.php