Есть такой замечательный WordPress плагин — WP-comment-master. Он делает красивыми отображение и публикацию комментариев через AJAX. О нем, и о маленькой проблеме с ним, которую я решил, и будет далее текст.

Вообще, пагинация комментариев — нативная функция, которая недавно появилась в WP (не скажу с какой версии, но навскидку не помню, чтоб она была год назад). Она хороша тем, что увеличивает количество страниц сайта (нужно для продажи ссылок в сапе), а также повышает соотношение хиты/хостосты (улучшает поведенческие факторы). А плоха она тем, что, собственно, повышается неудобство использования для посетителя. Каждые 10 (15) комментариев при их чтении нужно перезагружать страницу.

Так как с некоторых сайтов, где соотношение хиты/хосты у меня далеко за 10, я ссылок не продаю, то мне эти рефреши лишние нафиг не сдались, да и пользователя хочется порадовать быстрым листингом камментов. Поэтому я и поставил вышенаписанный плагин.

Этот плагин загружает сразу ВСЕ комментарии, но с помощью JavaScript разбивает их и показывает постранично. Таким образом, мы не выкидываем комментарии из индекса ПС (в случае если была бы пагинация полностью на AJAX), при этом сохраняя удобство пользователя. А вот постинг комментария происходит уже с помощью AJAX (собсно, а как иначе :)), без перезагрузки страницы. Можно задать произвольные сообщения при ошибке комментирования («Извините, нет связи с сервером, попробуйте позже»), при слишком частом комментировании («Вы слишком быстро оставляете комментарии! Подождите 3 минуты») и при успешной публикации комментария («Спасибо за комментарий»). Также можно задать вид строки со ссылками на страницы, кол-во комментариев на страницу и прочие мелкие приятности.

Попользовавшись им где-то месяца три, я начал замечать одну досадную штуку. Открывая ссылку с публикацией, по умолчанию показывается первая страница с комментариями.

А на ней — самые старые камменты. Я, к слову сказать, придерживаюсь школы сортировки камментов «самые новые внизу», но в данном случае получается, что и вверху, и внизу у нас старые комментарии, а новые — на последней странице. Некоторые посетители не сразу видят то, что комментариев несколько страниц, и читают только первую страницу. И, соответственно, некоторые отвечают на старые комментарии. Решение — сделать так, чтоб по умолчанию показывалась сразу последняя страница с комментариями.

Идем в папку с плагином, открываем cm.js, ищем функцию pagination(), в ней сразу после строчки

getTotal($commentlist);

добавляем строку

 currentPage = totalPage-1;

и все, теперь у нас крутые, правильно открывающиеся комментарии.