Создайте Loop с сообщениями, упорядоченными по последним комментариям

Используя query_posts, как я могу упорядочить список сообщений, чтобы те, у кого самые последние комментарии, находились наверху?

Я ищу что-то похожее на то, как упорядочиваются вопросы здесь, на SE, при сортировке по «Активному».

Solutions Collecting From Web of "Создайте Loop с сообщениями, упорядоченными по последним комментариям"

Я бы не использовал query_posts() . Эта конкретная функция предназначена для внесения изменений в конкретный запрос … и она достаточно ограничена, что вы не можете получить из нее нестандартные функциональные возможности.

Скорее, я бы использовал пользовательский запрос. То, что вы хотите сделать, это одобренные пользователем комментарии, отсортированные по дате их публикации / утверждения, и присоединиться к ним с сообщениями в вашей базе данных. Если сообщение не имеет комментариев, оно будет автоматически отфильтровано на основе этих критериев.

Очень простой пример псевдокода:

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

Просто помните, что вышеприведенный код является псевдокодом … это означает, что я сделал это с моей головы, это может не сработать, и вы должны использовать его только как концептуальный пример.

Для справки:

  • Структура базы данных WordPress