Вывести последний комментарий в список архива или рубрики

Обычно список архива или рубрики приводит основную информацию о самой статье: заголовок, автор, дата публикации.

Как к этому добавить ещё и сноску на последний комментарий к статье, автора последнего комментария и дату?

Ничего встроенного мне отыскать не удалось, поэтому произвёл попытку нарисовать самостоятельно:

<?php 
$sql = mysql_query("SELECT comment_post_ID, comment_author, comment_date
FROM wp_comments, wp_posts
WHERE comment_approved = '1'
AND comment_post_ID = wp_posts.ID
ORDER BY comment_ID DESC
LIMIT 1");

while ($row = mysql_fetch_assoc($sql))
{
   echo $row["comment_author"];
   echo "<br>";   
   echo $row["comment_date"];
   echo " <b>>></b> ";
   echo $row["comment_post_ID"];
   echo "<br>";
}
echo "<p>End output</p>";
?>

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

Как привязать комментарии к своим статьям? Или, другими словами, как отфильтровать комментарии по своим статьям?

$sql = mysql_query("SELECT comment_author, comment_date
FROM wp_comments
WHERE comment_approved = '1'
AND comment_post_ID = '$post->ID'
ORDER BY comment_ID DESC
LIMIT 1");

О! Работает! Спасибо большое!
Но вы не могли бы в двух словах пояснить почему? Я ведь же ещё и понять хочу…

Попробую в двух. В "исходном" варианте отсутствует условие "относящийся к текущему сообщению" (comment_post_ID = ‘$post->ID’), а вместо него есть условие "для которых совпадают IDы сообщений в таблицах" (comment_post_ID = wp_posts.ID). Возможно, Вы исходили из того, что движок БД "помнит", где остановился при просмотре таблицы сообщений. MySql не помнит. Это Dbase/Foxbase помнил.

Anonymous
Отправить
Ответ на: