Пользовательский запрос WordPress для большинства комментируемых сообщений за последние 7 дней - PullRequest
2 голосов
/ 25 июня 2011

Я пытаюсь сделать запрос на wpdb, чтобы прокомментировать большинство сообщений за последнюю неделю ... Есть идеи, что я делаю неправильно?

$querystr = "SELECT comment_count, ID, post_title
        FROM $wpdb->posts wposts, $wpdb->comments wcomments
        WHERE wposts.ID = wcomments.comment_post_ID
        AND wcomments.comment_date >= CURDATE() - 7 
        GROUP BY wposts.ID
        ORDER BY comment_count DESC
        LIMIT 0 ,  10
 ";

 $pageposts = $wpdb->get_results($querystr);

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

Заранее спасибо.

Ответы [ 3 ]

2 голосов
/ 25 июня 2011

Это должно работать:

global $wpdb;
$querystr = $wpdb->get_results("SELECT comment_count, ID,post_title 
    FROM $wpdb->posts 
    WHERE 
    post_status='publish' AND 
    post_date > DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 1 WEEK) 
    ORDER BY comment_count DESC 
    LIMIT 0 , 10");
1 голос
/ 25 июня 2011

Lonut, который решает проблему диапазона дат и чаще всего комментирует, но он не выберет только наиболее комментируемых постов , которые были прокомментированы за прошедший X интервал времени.

Это должно сделать это:

$querystr = "SELECT comment_count, ID, post_title
        FROM $wpdb->posts wposts, $wpdb->comments wcomments
        WHERE wposts.ID = wcomments.comment_post_ID
        AND wposts.post_status='publish'
        AND wcomments.comment_approved='1'
        AND wcomments.comment_date > DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 1 WEEK) 
        GROUP BY wposts.ID
        ORDER BY comment_count DESC
        LIMIT 0 ,  10
 ";

РЕДАКТИРОВАТЬ: фильтр на дату изменен с ГОДА на НЕДЕЛЮ

1 голос
/ 25 июня 2011

Вы заказываете по полю comment_count таблицы posts. Попробуйте упорядочить по количеству совпавших комментариев для группы:

ORDER BY count(*) desc
...