在评论模板之外显示帖子的第一条评论(可能使用SQL)

时间:2011-03-13 06:47:52

标签: php sql wordpress

在Wordpress中,如何在评论表之外找到并显示管理员的第一条评论或评论?

我想象一个sql查询显示帖子的第一条评论......

任何线索? 谢谢!

这是一个获得所有帖子最近评论的函数。我想编辑这个并显示我正在阅读的最新帖子

function showLatestComments() {
  global $wpdb;  
  $sql = "
   SELECT DISTINCT comment_post_ID, comment_author, comment_date_gmt, comment_approved, SUBSTRING(comment_content,1,100) AS com_excerpt 
   FROM $wpdb->comments 
   WHERE comment_approved = '1'
   ORDER BY comment_date_gmt DESC 
   LIMIT 5";  
 $comments = $wpdb->get_results($sql);  
 $output .= '<h2>latest comments</h2><ul id="comm">';  
 foreach ($comments as $comment) { 
   $output .= '<li><strong>'. $comment->comment_author . ' said</strong> : "' . strip_tags($comment->com_excerpt). '..."</li>';
   }
 $output .= '</ul>';  
 echo $output;  
}//end function

2 个答案:

答案 0 :(得分:0)

我认为“第一篇文章”是指最早的评论。一种简单的方法是更改​​顺序(因此先前的注释先行),然后取第一行。

$sql = "
 SELECT DISTINCT comment_post_ID, comment_author, comment_date_gmt, 
     comment_approved, SUBSTRING(comment_content,1,100) AS com_excerpt 
 FROM $wpdb->comments 
 WHERE comment_approved = '1'
 ORDER BY comment_date_gmt ASC 
 LIMIT 1";  

如果你这样做,只需改变这两行。

 ORDER BY comment_date_gmt ASC 
 LIMIT 1";  

答案 1 :(得分:0)

我不熟悉WordPress的数据库结构,但基本上你必须得到当前帖子的ID并将其作为WHERE参数传递。

我假设comment_post_ID会跟踪评论添加到的帖子的ID?如果:

$id = mysql_escape_string($_GET["id"]); // get id of post somewhere
  $sql = "
   SELECT DISTINCT comment_post_ID, comment_author, comment_date_gmt, comment_approved, SUBSTRING(comment_content,1,100) AS com_excerpt 
   FROM $wpdb->comments 
   WHERE comment_approved = '1' AND comment_post_ID = {$id}
   ORDER BY comment_date_gmt DESC 
   LIMIT 5";  

这将显示您传递给id

的帖子的最近5条评论