Иногда требуется вывести последние комментарии блога, причем не просто в сайдбаре, а на отдельной странице. Для этого можно воспользоваться специальными плагинами, но можно обойтись и без них.
Для вывода нужного количества комментариев на отдельной странице для начала нужно ее создать. Для того, чтобы создать страницу специально под комментарии, давайте сделаем отдельный шаблон – скопируйте файл page.php под именем page-comments.php, и добавьте в самое начало его исходного кода:
После этого найдите в исходном коде строчку, отвечающую за вывод содержимомго страницы. Она будет примерно такой:
[code laang=”php”]Замените этот код на другой:
comments c INNER JOIN $wpdb->posts p ON (c.comment_post_id = p.ID) ";
$sql .= "WHERE comment_approved = '1' ";
$sql .= "AND comment_type not in ('trackback', 'pingback') ";
$sql .= "AND p.post_status != 'trash' ";
$sql .= "ORDER BY comment_date DESC";
if ('-1' != $max)
$sql .= " LIMIT 0, $max";
$results = $wpdb->get_results($sql);
$templates = "t" . '<div style="margin-bottom:20px">%gravatar% %authorname% в посте %posttitle% <br />%commentcontent%</div>' . "n";
foreach ($results as $row) {
$tags = array(
'%commentdate%', '%gravatar%', '%posttitle%',
'%posturl%', '%authorurl%', '%authorname%',
'%commentid%', '%commentcontent%'
);
$replacements = array(
$row->comment_date, get_avatar($row->comment_author_email, '30'), $row->post_title,
get_permalink($row->comment_post_ID), $row->comment_author_url, $row->comment_author,
$row->comment_ID, $row->comment_content
);
$result .= str_replace($tags, $replacements, $templates);
}
if ($result)
$result = '<div>' . "n" . $result . '</div>' . "n";
// output
echo $result;
?>
После этого идите в админку и создавайте новую, пустую страницу. Ее название и ссылка могут быть любыми, а вот в качестве шаблона должен быть выбран Last Comments.
Сохраняйте страницу и открывайте в браузере – в ней будут последние комментарии, с аватарами, комментаторами, ссылками на посты, в которых оставлены комментарии, и содержанием самих комментариев. Количество комментариев в коде определено цифрой 50, но вы можете указать нужное вам количество, а если укажите -1, то будут выведены вообще все комментарии, опубликованные в блоге за все время его существования. Пример кода дан с учетом вывода только одобренных комментариев без трекбэков и пингов.
[info txt=”Будьте осторожны – чем больше количество комментариев, тем больше запросов к базе данных, а значит и больше нагрузка на хостинг. На маломощном хостинге количество комментариев более 100 вообще может уронить сайт, так что точно рассчитывайте возможности своего хостинга, и пользуйтесь кэшированием.”]










Вопросик!А где в коде длина комментария,не хочу весь комментарий,хочу длиной к примеру в слов 15.Заранее спасибо.