Отображение первого комментария поста вне шаблона комментариев (возможно, с использованием SQL) - PullRequest
0 голосов
/ 13 марта 2011

в Wordpress, как я могу найти и отобразить первый комментарий или комментарий администратора вне таблицы комментариев?

Я представляю, как SQL-запрос, который отображает первый комментарий поста ...

Есть какие-нибудь подсказки? Спасибо!

Это функция, которая получает 5 последних комментариев ко всем сообщениям. Я хотел бы отредактировать это и показать последний пост, который я читаю

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 голосов
/ 13 марта 2011

Я не знаком со структурой базы данных WordPress, но в основном вам нужно получить идентификатор текущего сообщения и передать его в качестве параметра WHERE.

Я предполагаю, что comment_post_ID отслеживает идентификатор сообщения, к которому был добавлен комментарий?Ifso:

$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";  

Это показало бы 5 самых последних комментариев к посту, который вы передаете по id

0 голосов
/ 13 марта 2011

Я так понимаю, что "первый пост" означает самый ранний комментарий.Один простой способ - изменить порядок (поэтому более ранние комментарии идут первыми), а затем взять первую строку.

$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";  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...