dzheka3d
@dzheka3d

Как получить комментарии к каждому посту в списке?

Всем привет! Вывожу список постов и хочу получить к каждому, 3 последних комментария. Как это реализовать с меньшими затратами ресурсов? Вот по такому принципу:
59cbf902409dd165576237.jpeg
Ведь если получить список постов, а потом запрашивать из БД для каждого комментарии, то при выводе 50 постов, получится дополнительных 50 запросов к БД.
  • Вопрос задан
  • 78 просмотров
Пригласить эксперта
Ответы на вопрос 1
HeadOnFire
@HeadOnFire
PHP, Laravel & WordPress Evangelist
1. Получить посты (1 запрос, если не тянуть и не праймить кеши метаданных и таксономий).
2. Из массива постов выдернуть их IDшки (wp_list_pluck или аналогичным методом).
3. Получить комменты c помощью WP_Comment_Query, передав IDшки из п.2 в свойство post__in (1 запрос, если не тянуть и не праймить кеши метаданных и постов)
4. Вывести посты циклом, в каждой итерации забирать необходимые комменты из результата п.3

Итого: 2 запроса.

Впрочем, в реальной жизни вам все-таки понадобятся метаданные как постов, так и комментов. Поэтому запросов будет больше, но не N+1.

А вообще такие штуки не мешало бы кешировать целиком, или хотя бы результаты запросов, в transients. На какой период - зависит от частоты обновления инфы на сайте. От 5 минут до часа.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы