Мелкосрочный ремонт: постраничный вывод комментариев
Посмотрел сегодня, как разростаются комментарии и подумал о том, что давно пора было уже адаптировать код шаблона блога под Wordpress 2.7 ведь в нем столько вкусного появилось, что в прежних версиях было реализовано плагинами.
Например, постраничный вывод большого числа комментариев - то что мне на сегодняшний день и нужно. Раньше разбивать комментарии на страницы приходилось чем-то вроде , а теперь достаточно один раз исправить свой шаблон.
Подробно о том, какие изменения следует сделать в коде, чтобы шаблон мог использовать эксклюзивные возможности Wordpress 2.7.x рассказала Соника в своем блоге и . Также в кодексе Вордпресс есть на эту тему, правда, на английском языке.
Чтобы заставить шаблон выводить комментарии по 10 штук на страницу (изменяется в настройках в админ.панели), мне пришлось добавить в первую очередь в файл header.php шаблона:
<?php if ( is_singular() ) wp_enqueue_script( 'comment-reply' ); ?>
до вызова функции <?php wp_head(); ?>. Далее отредактировать comments.php и functions.php. В первом меняем способ вывода комментариев. Они теперь выводятся всего одной функцией wp_list_comments(). А в functions.php можно подробно определить сам внешний вид (стили и разметку) ленты.
comments.php
<?php if ( have_comments() ) : ?>
<h1 class="comments-title" id="comments">
<?php comments_number('Комментариев нет', '1 комментарий', 'Комментариев %' );?>
</h1>
<p style="text-align:center;"><?php paginate_comments_links(); ?></p>
<div id="comments">
<?php wp_list_comments('callback=daemony_comment'); ?>
</div>
<p style="text-align:center;"><?php paginate_comments_links(); ?></p>
<?php else : ?>
<?php if ('open' == $post->comment_status) : ?>
<?php else : ?>
<?php endif; ?>
<?php endif; ?>
functions.php
<?php
function daemony_comment($comment, $args, $depth) {
$GLOBALS['comment'] = $comment; ?>
<div class="comment" id="comment-<?php comment_ID() ?>">
<div class="comment-avatar">
<?php echo get_avatar( $comment, 50 ); ?>
</div>
<div class="comment-content">
<div class="comment-info">
<span><?php comment_author_link() ?></span>
<?php comment_date('j F, Y H:i:s T') ?>
<?php edit_comment_link('Править','&amp;nbsp;',''); ?> .:.
<?php if (function_exists('quoter_comment')) { quoter_comment(); } ?>
</div>
<?php if ($comment->comment_approved == '0') : ?>
<em>Ваш комментарий ожидает проверки и одобрения.</em>
<?php endif; ?>
<?php comment_text() ?>
</div>
</div>
<?php } ?>
Теперь и страницы будут быстрей грузиться (не нужно будет выдавать все имеющиеся комментарии) и читать комментарии стало, на мой взгляд, удобней.
Обратите внимание:
теперь самый последний комментарий располагается первым, а не последним, как было раньше.
Похожие публикации
Теги: migrating themes, Wordpress, wordpress 2.7, адаптация, блог, оформление, тема, тюнинг


Не автору публикации “спасибо” - разработчикам Wordpress.
Супер, долго искал, большое спасибо автору!