如何在WordPress中获得新提交的帖子之上的最新评论帖子?

时间:2013-07-06 作者:user1627363

我有这个功能:

$ids = $wpdb->get_col("SELECT DISTINCT comment_post_ID
FROM $wpdb->comments
ORDER BY comment_date DESC
LIMIT 0 , 30");

foreach ($ids as $id) {
  $post = &get_post( $id );
  setup_postdata($post); ?>
  <p><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></p>
  <?php
}
?>
其中显示latest commented posts 在列表中,这很好。我想做的是优先考虑这一点,并将其与“get newest post list“。假设我今天对一篇名为Hello World的帖子发表了评论,昨天有人提交了一篇帖子……我想在这篇新帖子上面获得最近发表的评论。问题是,在我的代码片段中,没有任何内容说明如何获取最新帖子。我如何才能combine 他们So how to combine most recent commented posts and newest posts with each other? 这可能吗?

1 个回复
最合适的回答,由SO网友:M Khalid Junaid 整理而成

试试吧,对我来说很好,它在做什么,查询,用left jon 具有comments 因此,当一篇文章有注释时,它也有comment_date 如果帖子上没有发表评论,那么在结果集中null 所以我合并了comment_date 具有post_date 因此,哪个帖子的日期更大(对于comment\\u date或post\\u date),它将首先发布,以此类推

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
为了显示帖子,您必须首先通过为数据库交互定义WP的全局变量来获得结果,即$wpdb

<?php
global $wpdb;
$results = $wpdb->get_results("    SELECT p.ID,
    (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 LIMIT 20"); 
?>
HTML

<?php
foreach ($results as $id) {
  $post = &get_post( $id->ID );
  setup_postdata($post); ?>
  <p><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></p>
  <?php
} ?>
希望这就是你想要的

结束

相关推荐

GET_POSTS-找出查询字符串是否是垃圾并使用了回退

如果我们将字符串传递给以下函数get_posts, 并且该字符串不是有意义的查询字符串(例如get\\u posts(“”)),该函数返回默认查询的结果(最后五篇posts或类似的结果)。是否有可能抑制这种行为,或者更好的是,找出字符串是否是有意义的查询字符串,或者函数是否只是返回到默认值,因此它不是?更改默认查询设置不是一个解决方案,因为我不想影响主循环,而只想调用get_posts 在插件中。