1

@Dianuj 一周前解决了我的问题,当时我问我如何才能获得recent comment高于 a 的post. 这一切都很好,但是昨天,当我测试它时,我看到了一个小问题,我不想在我的Wordpress网站上出现。让我给你解释一下...

如果有人在您评论之前对没有评论的帖子发表评论,那么此页面上的功能如何在 Wordpress 中获取新提交帖子上方的最新评论帖子?将完美地工作。我感谢 Dianuj 让我的生活更轻松。

当用户对已经有评论的帖子发表评论时,问题就开始了。例如,您对帖子发表第二条评论。在这种情况下,帖子标题不会上升并在页面上显示“他”的脸。这是个大问题,我希望有人可以帮助我解决此链接上的片段如何在 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"); 
?>
4

1 回答 1

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 
于 2013-07-19T10:29:19.910 回答