Создайте цикл с Публикациями, Упорядоченными по самым последним комментариям
-
16-10-2019 - |
Вопрос
Используя query_posts, как я могу упорядочить список сообщений, чтобы те, у кого самые последние комментарии, были вверху?
Я ищу что-то похожее на то, как упорядочиваются вопросы здесь, в SE, при сортировке по "Активным".
Решение
Я бы не стал использовать query_posts()
.Эта конкретная функция предназначена для внесения изменений в конкретный запрос ...и он достаточно ограничен, чтобы вы не могли извлечь из него ту пользовательскую функциональность, которая вам нужна.
Скорее, я бы использовал пользовательский запрос.Что вам нужно будет сделать, так это запросить одобренные комментарии, отсортированные по дате их публикации / утверждения, и объединить их с записями в вашей базе данных.Если в публикации нет комментариев, она автоматически будет отфильтрована на основе этого критерия.
A очень просто пример псевдокода:
$qstr = 'SELECT * FROM wp_posts ON (wp_posts.post_id = wp_commnets.comment_post_id) WHERE wp_comments.comment_approved='approved' ORDER BY wp_comments.comment_date';
$my_query = new WP_Query($qstr);
while($my_query->have_posts() ...
По сути, вы выбираете публикации на основе определенных критериев, связанных с данными в таблице комментариев.Однако использование прямого запроса требует определенной глубины знаний относительно операторов SQL и структуры базы данных WP...так что обычно это не моя первая рекомендация, но в вашем случае она должна сработать.
Просто помните, что приведенный выше код является псевдокодом ...это означает, что я придумал это навскидку, это может не сработать, и вам следует использовать это только как концептуальный пример.
Для справки: