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

  • 25.03.2019
  • 960
  • 0
  • 02.10.2019
  • 1
  • 1
  • 0
Как изменить порядок комментариев в WordPress без плагинов

Если вы хотите, чтобы в CMS WordPress комментарии к статье шли в обратном порядке (самые новые вверху) и при этом использовать пагинацию (разбиение на страницы, например, по 10 комментариев), то можете столкнуться с неприятностью, что данная сортировка работает только в том случае, если последние комментарии будут на самой последней странице (а не на первой, как нам этого хочется).

Описание проблемы

В случае использования пагинации комментариев (т.е. их разбиения на страницы), не получится сделать так, чтобы самые последние (новые) комментарии шли на первой странице, более старые на второй и т.д. Вордпресс позволяет сделать только так, чтобы самые последние комментарии шли на самой последней странице. Меня такой вид отображения напрягает и кажется совсем неудобным для информационных статей, где в самых новых комментариях содержится наиболее актуальная информация.

Решение

Чтобы это изменить, необходимо проделать следующее. Заходим в "Настройки" > "Обсуждение" и приводим настройки к такому виду, как на скриншоте ниже.


При таких настройках, при открытии статьи с комментариями, будет открываться первая страница и на ней выводится самые старые комментарии. Пол дела уже сделано, теперь нам необходимо поменять порядок отображения комментариев, чтобы вместо старых, выводились новые. Для этого в файл 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 не будет опубликован.

Напоминаем Вам, что Ваше сообщение будет опубликовано только после проверки администратором сайта. Обычно это занимает 1-2 рабочих дня.