Как поменять порядок пояснений в WordPress без плагинов

Если вы желаете, чтоб в 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 комментариев на страницу), а все вложенные комментарии (второго, третьего и т.д. уровней) мы не трогаем, чтобы не нарушать порядок отображения.

Комментарии

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *