Иногда требуется вывести последние комментарии блога, причем не просто в сайдбаре, а на отдельной странице. Для этого можно воспользоваться специальными плагинами, но можно обойтись и без них.
Для вывода нужного количества комментариев на отдельной странице для начала нужно ее создать. Для того, чтобы создать страницу специально под комментарии, давайте сделаем отдельный шаблон – скопируйте файл 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.Заранее спасибо.