Как вывести определенное количество последних комментариев на отдельной странице

Как вывести определенное количество последних комментариев на отдельной странице | n-wp.ru
Инструкция по созданию отдельной страницы, на которой выводится определенное количество последних комментариев. Вы можете вывести любое количество комментариев (хоть все) с аватарами, ссылками на комментаторов, и ссылками на посты, в которых они были размещены.
👍 Научим бесплатно правильно создавать сайты на WordPress. Подробнее →

Иногда требуется вывести последние комментарии блога, причем не просто в сайдбаре, а на отдельной странице. Для этого можно воспользоваться специальными плагинами, но можно обойтись и без них.

Как вывести определенное количество последних комментариев на отдельной странице (2)

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

Как вывести определенное количество последних комментариев на отдельной странице (1)

Сохраняйте страницу и открывайте в браузере — в ней будут последние комментарии, с аватарами, комментаторами, ссылками на посты, в которых оставлены комментарии, и содержанием самих комментариев. Количество комментариев в коде определено цифрой 50, но вы можете указать нужное вам количество, а если укажите -1, то будут выведены вообще все комментарии, опубликованные в блоге за все время его существования. Пример кода дан с учетом вывода только одобренных комментариев без трекбэков и пингов.

[info txt=»Будьте осторожны — чем больше количество комментариев, тем больше запросов к базе данных, а значит и больше нагрузка на хостинг. На маломощном хостинге количество комментариев более 100 вообще может уронить сайт, так что точно рассчитывайте возможности своего хостинга, и пользуйтесь кэшированием.»]
Создай свой первый сайт на WordPress

tiaurus

Автор n-wp.ru — блога о WordPress для новичков.

Оцените автора
Добавить комментарий

  1. Paradise

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

    Ответить