Вывод списка последних комментариев в wordpress без плагинов
+21

В этой статье я расскажу как вывести последние комментарии в wordpress без помощи плагинов. Почему без плагинов? Да просто потому, что многим не нужен огромный функционал плагинов. Им просто необходимо вывести список последних комментариев и все!
Так вот эту цель я преследовал — простота в использовании и только необходимый функционал.

В принципе, возможность вывода списка последних комментариев доступна с помощью виджетов. Только вот список, сформированный с помощью виджета Свежие комментарии немного не полный — в нем присутствует имя автора и название статьи, к которой оставлен комментарий, но отсутствует текст комментария, что, по моему, не очень логично. А еще мне не понравилось там то, что имя автора комментария представляет собой ссылку (внешнюю) на сайт комментатора. Хотя ссылка и содержит атрибут rel="nofollow", но все же она внешняя. Да и особой надобности в ней, думаю, нет.

Поэтому я и решил для этой цели использовать свою функцию

/**
* $number - количество выводимых комментариев,
* $length - количество символов для обрезки текста комментариев
*/
function recent_comments_remak ($number=5, $length=150) {
		$args = array (
			'number' => $number,
            'status' => 'approve',
		);
		$comments = get_comments($args);
		echo '<ul>';
		foreach($comments as $comment) :
            $comment_content_short = strip_tags($comment->comment_content);
			$comment_content_short = substr($comment_content_short, 0, $length);
			echo '<li class="recentcomments">' . $comment->comment_author . '<br /><a href="' . get_comment_link($comment->comment_ID) . '">' . substr($comment_content_short, 0, strrpos($comment_content_short, ' ')) . '...</a></li>';
		endforeach;
		echo '</ul>';
}

Список комментариев оформлен тегами <ul> и <li>, к элементам списка применен класс class="recentcomments". Поэтому во многих готовых темах оформление списка будет в норме.

Для вывода списка комментариев необходимо вставить в нужное место следующий код

<?php recent_comments_remak (); ?>

Для вывода списка последних комментариев с помощью данной функции в виджет, неоходим установленный плагин, позволяющий добавлять исполняемый код PHP в виджеты. Таким плагином является Exec-PHP.

По умолчанию выводится список из пяти последних комментариев, текст которых обрезан до 150 символов. Комментарии в списке отсортированы по дате добавления в порядке убывания, т.е. добавленные последними отображаются первыми.
Функция имеет два аргумента:
$number — для указания количества выводимых комментариев;
$length — для указания длины текста выводимых комментариев в символах.

Так, например, функция

<?php recent_comments_remak (3, 50); ?>

выведет список из трех комментариев, текст которых обрезан до 50 символов.

На этом все! Пользуйтесь на здоровье!
Если появятся вопросы либо пожелания — не стесняйтесь!

+21
Понравилась запись? Подпишитесь по RSS или E-mail!
Категории: Хаки Wordpress. Прямая ссылка на запись.

Комментарии к записи Вывод списка последних комментариев в wordpress без плагинов: 23

  1. Anastasia сказал(а):

    Очень порадовали Вы меня! Как раз актуально на данный момент! :) Спасибо!

  2. Густав сказал(а):

    Спасибо за щадя своего времени, чтобы говорить об этом, я чувствую себя в благоприятных для нее и любить узнать больше по этой теме. Если это возможно, по причине вашего опыта, вы не могли бы обновление блога с большим количеством информации? Это очень веселая для меня.

  3. Spyrix сказал(а):

    A сам код надо вставлять в functions.php или для этого надо создать отдельный файл который будет называться recent_comments_remak?

    • admin сказал(а):

      первый код, определяющий функцию — в function.php
      второй, для вывода — туда, где нужно выводить список

  4. scriba сказал(а):

    Для — вывод списка последних комментариев, где
    3 — количество комментариев
    50 — количество выводимых символов

    Подскажите пожалуйста, как для функции — вывод популярных статей,
    задать количество выводимых символов?

  5. scriba сказал(а):

    Подскажите пожалуйста, как для функции mdv_most_commented(); — вывод популярных статей,
    задать количество выводимых символов?

  6. Александр сказал(а):

    Давно искал, что-то подобное. Спасибо за пост. Стал постоянным читателем блога.

  7. Макс сказал(а):

    А дату и время комментария можно как то вывести?
    Есть плагины, но там код очень большой и долго разбираться….

    • remak сказал(а):

      Можно.
      Дату нужно получить через

      $comment->comment_date

      Добавить в вывод в строке 15.

  8. Светлана сказал(а):

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

    • Денис сказал(а):

      да, или хотя бы жирным выделить. и почему то между именем автора и датой пробела нет. как его сделать. Спасибо!

  9. um_nik сказал(а):

    А как можно добавить название статьи?

  10. Алексей сказал(а):

    А как сделать, чтобы список последних комментариев листался, как у вас -«Новые пользователи»?

    • admin сказал(а):

      Найти готовый плагин или использовать познания в Javascript.

      • Алексей сказал(а):

        А не можете описать решения без плагина? Может, на вашем сайте есть? Или ещё где?..

  11. Вадим сказал(а):

    Спасибо за прекрасную статью! Посмотрел на дату публикации и до сих пор актуальна, по крайней мере для меня. :)
    Но возник вопрос: а как добавить отображение граватара в списке последних комментариев?
    Спасибо.

  12. Егор сказал(а):

    Отличный материал, спасибо. Не могли бы вы объяснить, как формат даты поменять, чтобы выводились только дата, без времени?
    Пробовал в функцию вставить (‘m d Y’) после сomment_date, но выдает ошибку

  13. Вера сказал(а):

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

  14. Спортсмен сказал(а):

    Полезная информация. Как раз искал подобное. Спасибо.

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *