Paged Comments – разбиваем комментарии на страницы

Скачать архив плагина WordPress Paged Comments Plugin
Источник: mikolka – руссификация и интеграция

Инсталляция.

1. Распаковываем и содержимое архива заливаем в папку wp-content/plugins
2. Переименовываем файл “paged-comments-config-sample.php” в paged-comments-config.php
3. Самое главное – в папке нашей темы(куда будем интегрировать!) создаем копию файла comments.php, и переименовываем его в comments-paged.php

Об интеграции.
[quote]Важно!Приведенный ниже код может не совпадать, он как пример – ищите не полные вхождения строк указанных ниже, а части, т.к. здесь как пример приводится исходный код русифицированной темы.[/quote]
1. Находим строку в файле comments-paged.php:

<?php comments_number(’Нет комментариев’, ‘Один комментарий’, ‘Комментариев: %’ );?>

2.После нее добавляем блок:

<!– Comment page numbers –>
<?php if ($paged_comments->pager->num_pages() > 1): ?>
<p class=”comment-page-numbers”><?php _e(”Страницы:”); ?> <?php paged_comments_print_pages(); ?></p>
<?php endif; ?>
<!– End comment page numbers –>

3. Затем ищем строки

<li class=”<?php echo $oddcomment; ?>” id=”comment-<?php comment_ID() ?>”>
<cite><?php comment_author_link() ?></cite> написал:

и между ними добавляем строку:

<?php echo $comment_number; $comment_number += $comment_delta;?>

4. Следующий шаг: строку

<a href=”http://www.mikolka.info/#comment-<?php comment_ID() ?>” title=”"><?php comment_date(’j F Y’) ?> в <?php comment_time() ?></a> <?php edit_comment_link(’[редактировать]’,'’,'’); ?>

меняем на:

<a href=”<?php echo paged_comments_url(’comment-’.get_comment_ID()); ?>” title=”"><?php comment_date(’F jS, Y’) ?> at <?php comment_time() ?></a> <?php edit_comment_link(’e','’,'’); ?>

5. Завершаем: перед строкой –

<?php else : // this is displayed if there are no comments so far ?>

вставляем еще один блок:

<!– Comment page numbers –>
<?php if ($paged_comments->pager->num_pages() > 1): ?>
<p class=”comment-page-numbers”><?php _e(”Страницы:”); ?> <?php paged_comments_print_pages(); ?></p>
<?php endif; ?>
<!– End comment page numbers –>

Основные настройки

Порядок комментариев:

$paged_comments->ordering = ‘DESC’;

DESC – от последнего комментария к первому (по умолчанию)
ASC – от первого комментария к последнему

Количество комментариев на страницу:

$paged_comments->per_page = 10;

10 – по умолчанию.

Остальные настройки можно не трогать, но изучить стоит, т.к. есть еще другие полезные фичи у плагина.

При инсталляции возникает следующая проблема
Выдает ошыбку
Parse error: syntax error, unexpected ‘:’ in
в строке
<?php if ($paged_comments->pager->num_pages() > 1): ?>

Тема Navigation 1.01
Вордпресс 2.0.10

исходный код страницы comments-paged.php

<?php if (is_single()) { ?>
<dl class="icons"><dt><?php _e('Распространите'); ?></dt>
<dd><a class="s_delicious" href="http://del.icio.us/post?title=<?php the_title(); ?>&amp;url=<?php echo get_permalink() ?>" title="Submit <?php the_title(); ?> to del.icio.us" rel="nofollow">delicious</a></dd>
<dd><a class="s_digg" href="http://digg.com/submit?phase=2&amp;title=<?php the_title(); ?>&amp;url=<?php echo get_permalink() ?>" title="Submit <?php the_title(); ?> to digg" rel="nofollow">digg</a></dd>
<dd><a class="s_technorati" href="http://www.technorati.com/faves?add=<?php echo get_permalink() ?>" title="Submit <?php the_title(); ?> to technorati" rel="nofollow">technorati</a></dd>
<dd><a class="s_reddit" href="http://reddit.com/submit?title=<?php the_title(); ?>&amp;url=<?php echo get_permalink() ?>" title="Submit <?php the_title(); ?> to reddit" rel="nofollow">reddit</a></dd>
<dd><a class="s_magnolia" href="http://ma.gnolia.com/beta/bookmarklet/add?title=<?php the_title(); ?>&amp;description=<?php the_title(); ?>&amp;url=<?php echo get_permalink() ?>" title="Submit <?php the_title(); ?> to magnolia" rel="nofollow">magnolia</a></dd>
<dd><a class="s_stumbleupon" href="http://www.stumbleupon.com/submit?title=<?php the_title(); ?>&amp;url=<?php echo get_permalink() ?>" title="Submit <?php the_title(); ?> to stumbleupon" rel="nofollow">stumbleupon</a></dd>
<dd><a class="s_yahoo" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?title=<?php the_title(); ?>&amp;popup=true&amp;u=<?php echo get_permalink() ?>" title="Submit <?php the_title(); ?> to yahoo bookmarks" rel="nofollow">yahoo</a></dd>
<dd><a class="s_google" href="http://www.google.com/bookmarks/mark?op=add&amp;title=<?php the_title(); ?>&amp;bkmk=<?php echo get_permalink() ?>" title="Submit <?php the_title(); ?> to google bookmarks" rel="nofollow">google</a></dd>
</dl>
<?php } ?>

<?php // Do not delete these lines
if ('comments.php' == basename($_SERVER['SCRIPT_FILENAME']))
die ('Пожалуйста не загружайте эту страницу непосредственно. Спасибо!');
if (!empty($post->post_password)) { // if there's a password
if ($_COOKIE['wp-postpass_' . COOKIEHASH] != $post->post_password) {  // and it doesn't match the cookie
?>
<p class="nocomments">Этот пост - защищен паролем. Введите пароль, чтобы посмотреть комментарии.<p>
<?php
return;
 }
}
/* This variable is for alternating comment background */
$oddcomment = 'alt';
$commentcount=1;
?>
<!-- You can start editing here. -->
<?php if ($comments) : ?>
<h4 id="comments"><?php comments_number('Есть что сказать?', 'Один комментарий', '% комментариев' );?> к &#8220;<?php the_title(); ?>&#8221;</h4> 
<!– Comment page numbers –>
<?php if ($paged_comments->pager->num_pages() > 1): ?>
<p class=”comment-page-numbers”><?php _e(”Страницы:”); ?> <?php paged_comments_print_pages(); ?></p>
<?php endif; ?>
<!– End comment page numbers –>
<ol class="commentlist">
<?php foreach ($comments as $comment) : ?>
<div class="avatar">
<?php comvatar_image(); ?></div><li class="<?php echo $oddcomment; ?>" id="comment-<?php comment_ID() ?>">
<?php echo $comment_number; $comment_number += $comment_delta;?>
<div class="commentnumber"><?php echo $commentcount++;?></div>
<cite><?php comment_author_link(); ?>: </cite>
<?php if ($comment->comment_approved == '0') : ?>
<em>Ваш комментарий ждет модерации.</em>
<?php endif; ?>
<br />

 <?php comment_text() ?>
<small class="commentmetadata"><a xhref=”<?php echo paged_comments_url(’comment-’.get_comment_ID()); ?>” title=”"><?php comment_date(’F jS, Y’) ?> at <?php comment_time() ?></a> <?php edit_comment_link(’e','’,'’); ?></small>

</li>

<?php /* Changes every other comment to a different class */    
if ('alt' == $oddcomment) $oddcomment = '';
else $oddcomment = 'alt';
?>

<?php endforeach; /* end for each comment */ ?>
</ol>
<!– Comment page numbers –>
<?php if ($paged_comments->pager->num_pages() > 1): ?>
<p class=”comment-page-numbers”><?php _e(”Страницы:”); ?> <?php paged_comments_print_pages(); ?></p>
<?php endif; ?>
<!– End comment page numbers –>

<?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. -->

<?php else : // comments are closed ?>
<!-- If comments are closed. -->

<p class="nocomments">Комментарии закрыты.</p>
<?php endif; ?>
<?php endif; ?>

<?php if ('open' == $post->comment_status) : ?>
<h4 id="respond">Оставьте коментарий.</h4>

<?php if ( get_option('comment_registration') && !$user_ID ) : ?>
<p>Вы должны <a href="<?php echo get_option('siteurl'); ?>/wp-login.php?redirect_to=<?php the_permalink(); ?>">войти</a> чтоб написать комментарий.</p>

<?php else : ?>

<form action="<?php echo get_option('siteurl'); ?>/wp-comments-post.php" method="post" id="commentform">
<?php if ( $user_ID ) : ?>

<p>Войти как <a href="<?php echo get_option('siteurl'); ?>/wp-admin/profile.php"><?php echo $user_identity; ?></a>. <a href="<?php echo get_option('siteurl'); ?>/wp-login.php?action=logout" title="Выйти из этого аккаунта">Выйти &raquo;</a></p>

<?php else : ?>
<p><input type="text" name="author" id="author" value="<?php echo $comment_author; ?>" size="22" tabindex="1" />

<label for="author"><small>Имя <?php if ($req) echo "(необходимо)"; ?></small></label></p>
<p><input type="text" name="email" id="email" value="<?php echo $comment_author_email; ?>" size="22" tabindex="2" />

<label for="email"><small>Mail (не будет опубликован) <?php if ($req) echo "(необходимый)"; ?></small></label></p>

<p><input type="text" name="url" id="url" value="<?php echo $comment_author_url; ?>" size="22" tabindex="3" />

<label for="url"><small>Website</small></label></p>
<?php

if ( function_exists('math_comment_spam_protection') ) {

$mcsp_info = math_comment_spam_protection();?>

<p>

<input class="text_input" type="text" name="mcspvalue" id="mcspvalue" value="" tabindex="4" />

<label for="mcspvalue">
<font size="5">

= <?php echo $mcsp_info['operand1'] . ' + ' . $mcsp_info['operand2'] ?>

</font>(Защита от СПАМа)
</label>
<input type="hidden" name="mcspinfo" value="<?php echo $mcsp_info['result']; ?>" />
</p>
<?php } // if function_exists...
 ?>
<?php endif; ?>

<!--<p><small><strong>XHTML:</strong> Вы можете использовать эти тэги: <?php echo allowed_tags(); ?></small></p>-->

<p>
<?php wp_grins(); ?>
<textarea name="comment" id="comment" cols="100%" rows="10" tabindex="4"></textarea></p>
<p><input name="submit" type="submit" id="submit" tabindex="5" value="Оставить комментарий" />
<input type="hidden" name="comment_post_ID" value="<?php echo $id; ?>" />
</p>

<?php do_action('comment_form', $post->ID); ?>
</form>
<?php endif; // If registration required and not logged in ?>

<?php endif; // if you delete this the sky will fall on your head ?>

Взял твой, приведенный, файл и попробовал его у себя – все работает. Ищи в чем загвоздка. Здесь проблем нет

Спасибо! Сегодня было время сел и таки разобрался. Выправил ошибки в шаблоне. Работает отлично то что мне надо было!

сделал все как написали выдет ошибку

Fatal error: Call to undefined function: ro_paged_comments_template() in /home/…/wp-content/plugins/paged-comments/paged-comments.php(90) : eval()’d code on line 21

в чем проблемма подскажите пожалуйста

К сожалению, та же история, что и у предыдущего автора. WordPress 2.3.2 локализованный.

А как в этом плагине можно изменить нумерацию страниц? а то у меня получается, что первой идет четвертая страница, а не первая 🙁 http://zavoevatel.info/?page_id=29

хотелось бы чтоб самый новые комментарии были на первой странице, а более старые на самой последней

А разве в конфиге плагина нет этой настройки?

А разве в конфиге плагина нет этой настройки?

Спасибо большое за подсказку, получилось все!
Но теперь другая проблема, все в тойже гостевой, у каждого сообщенгие двойной номер, первый идет номер именно на этой странице, а второй – общий номер по всей гостевой.
Подскажите пожалуйста, как можно убрать первый номер?

не ужели ни у кого такого не было, а только у меня? =(

Отсюда плохо видно, что Вы там в шаблоне написали. Список, наверно, нумерованный и еще плагин свой номер добавляет.

у меня после активации плагина вся гостевая пропадает(( и вместо нее две черточки:( с чего бы это?

Anonymous
Отправить
Ответ на: