Я использую постраничные и цепочные комментарии с:
- 10 комментариев на странице
- последняя страница комментария первая
- самые новые комментарии первыми
Если всего 21 комментарий, на первой странице будет только 1 комментарий — самый новый. Как сделать так, чтобы последние 10 комментариев всегда отображались на первой странице?
Редактировать: обновлен до 3.1, проблема все еще существует…
Я использую WordPress 3.0.3.
Изменить: забыл добавить код, который я использую. Я использую обратный вызов для перечисленных комментариев, здесь идет:
function mytheme_comment($comment, $args, $depth) {
$GLOBALS['comment'] = $comment; ?>
<li <?php comment_class(); ?> id="li-comment-<?php comment_ID() ?>">
<div id="comment-<?php comment_ID(); ?>" class="comment">
<?php if(function_exists('hkTC_comment_title'))
hkTC_comment_title($comment->comment_ID,'<strong class="comment-title">','</strong>');
?>
<?php comment_text() ?>
<span class="written-by">
Skrivet av:
<?php
$commentAuthID = get_comment(get_comment_ID())->user_id;
echo the_author_meta('first_name',$commentAuthID)." ";
echo the_author_meta('last_name',$commentAuthID);
?>
<em>kl. <?php echo get_comment_time('H.i'); ?>, den <?php echo get_comment_date('j F Y'); ?></em>
</span>
<div class="reply">
<?php comment_reply_link(array_merge( $args, array('depth' => $depth, 'max_depth' => $args['max_depth']))) ?>
</div>
</div>
<?php }
Функция hkTC_comment_title взята из этого плагина, который я также использую: http://wordpress.org/extend/plugins/hikari-title-comments/ Но я думаю, это не должно влиять на количество комментариев.
Редактировать: это мой собственный шаблон, используемый для отображения страницы с комментариями: http://123.writeboard.com/4x2m38ifvnkrct7l
Какой код вы используете? Плагин?
Извините, хороший вопрос. Отредактировал мой вопрос сейчас.
@Richard B: до сих пор нет кода, который показывает ссылки на страницы комментариев. любые другие плагины, связанные с комментариями, которые вы используете? или код разбиения на страницы сам по себе?
@Bainternet: Не могу вставить сюда свой код comments.php, не потеряв часть его по какой-то причине, я попытаюсь найти другое решение.
@Bainternet: Хорошо, вот мои комментарии. PHP-код: 123.writeboard.com/oepfm5gyqktj94xi Пароль: 1234
Это действительно стандартное поведение WordPress. Комментарии всегда остаются на одной и той же странице комментариев, поэтому, если вы сначала покажете последнюю страницу комментариев, эта последняя страница комментариев не всегда будет иметь «полное» количество комментариев. Преимущество сохранения комментария всегда на одной и той же странице комментариев заключается в том, что URL-адрес всегда остается одним и тем же, иначе комментарий может перемещаться на другую страницу при добавлении новых комментариев.
Но это раздражает, и мне тоже нужен обходной путь. Я не нашел (простого?) способа сделать это с помощью хуков WordPress, поэтому я сам нарезал массив комментариев, прочитав
cpage
переменную запроса (страница комментариев). Будьте осторожны с этой переменной, потому что WordPress будет очень полезен, чтобы изменить ее для вас, когда вы установите «первая/последняя страница комментария» на «последняя».Этот код находится в
comments.php
файле темы, потому что он считывает глобальную переменную$comments
. Я не использовал обратный вызов комментария (это был очень простой код), но вы все равно можете передать только что нарезанный$comments_to_display
массив вwp_list_comments()
качестве второго аргумента, тогда он будет использовать его вместо всех комментариев. Я не знаю, как это будет работать с цепочками комментариев (как они работают с «обычными» постраничными комментариями?).