如果已经发表评论,最近的帖子不会高于帖子

时间:2013-07-18 13:40:30

标签: wordpress post comments posts

@Dianuj在一周前解决了我的问题,当时我问我如何能够recent comment以上post。这一切都很顺利,但昨天,当我测试它时,我看到了一个小问题,我不希望在我的Wordpress网站上。让我向你解释一下......

如果有人在您发表评论之前对没有评论的帖子发表评论,那么此页面How to get most recent commented post above new submitted post in Wordpress?上的功能将完美无缺。我感谢Dianuj让我的生活更轻松。

当用户对ALREADY中有评论的帖子发表评论时,问题就开始了。例如,您在帖子上发表第二条评论。在这种情况下,帖子标题不会上升并在页面上显示“他的”脸。这是一个大问题,我希望有人可以帮助我解决此链接上的代码段How to get most recent commented post above new submitted post in Wordpress?

PS:对于懒惰的人来说,这里是 - >

<?php
global $wpdb;
$results = $wpdb->get_results("    SELECT p.*,
    (CASE WHEN c.comment_date IS NULL THEN p.`post_date` ELSE c.comment_date END) order_column
     FROM `wp_posts` p
    LEFT  JOIN `wp_comments` c  ON (p.ID = c.`comment_post_ID` ) WHERE p.post_type='post' AND p.post_status='publish'
    GROUP BY p.ID
     ORDER BY order_column   DESC"); 
?>

1 个答案:

答案 0 :(得分:1)

在上面的情况GROUP BY对第一次出现p.ID的数据进行分组,这样最新的将被忽略的是获取ORDER BY的所有数据然后对数据进行分组的技巧所以最新的一个会在那里

试试这个

SELECT * FROM (
SELECT   p.*,
       (CASE WHEN c.comment_date IS NULL THEN p.`post_date` ELSE c.comment_date END) AS order_column
     FROM `wp_posts` p
    LEFT OUTER JOIN `wp_comments` c  ON (p.ID = c.`comment_post_ID` ) WHERE p.post_type='post' AND p.post_status='publish' 
     ORDER BY order_column DESC 
   ) t GROUP BY ID  ORDER BY order_column DESC