- Содержание статьи
Если вы желаете, чтоб в CMS WordPress комменты к статье шли в оборотном порядке (самые новые вверху) и при всем этом применять пагинацию (разбиение на странички, к примеру, по 10 пояснений), то сможете столкнуться с неприятностью, что эта сортировка работает только в этом случае, если последние комменты будут на самой последней страничке (но не на первой, как нам этого охото).
Описание трудности
В случае использования пагинации пояснений (т.е. их разбиения на странички), не получится сделать так, чтоб самые последние (новые) комменты шли на первой страничке, больше старые на 2-ой и т.д. Вордпресс дозволяет сделать только так, чтоб самые последние комменты шли на самой последней страничке. Меня этот вид отображения напрягает и кажется совершенно неловким для информационных статей, где в самых новых комментах содержится более животрепещущая информация.
Решение
Чтоб это поменять, нужно сделать последующее. Заходим в «Опции» > «Обсуждение» и приводим опции к такому виду, как на снимке экрана ниже.

При таких настройках, при открытии статьи с комментариями, будет открываться первая страница и на ней выводится самые старые комментарии. Пол дела уже сделано, теперь нам необходимо поменять порядок отображения комментариев, чтобы вместо старых, выводились новые. Для этого в файл functions.php вашей темы оформления, необходимо внести следующие строки:
###############Меняем порядок комментариев############### add_filter( 'comments_clauses' , 'reverse_comments'); function reverse_comments($clauses){ if ($clauses['limits']) { $clauses['orderby'] = 'wp_comments.comment_date_gmt DESC, wp_comments.comment_ID DESC'; } return $clauses; } ###############Меняем порядок комментариев###############
Данный код — поменяет параметры в запросе к Mysql, который делает WordPress. Условие if ($clauses['limits']) необходимо, чтобы менялся порядок сортировки только комментариев первого уровня (т.к. у нас в примере стоит разбиение по 10 комментариев на страницу), а все вложенные комментарии (второго, третьего и т.д. уровней) мы не трогаем, чтобы не нарушать порядок отображения.

Добавить комментарий