n-wp.ru — блог о WordPress
Как вывести последние комментарии с аватарами без плагинов и виджетов | n-wp.ru

Как вывести последние комментарии с аватарами без плагинов и виджетов

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

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

Чтобы вывести список последних комментариев, снабженных ссылками на эти комментарии и аватарами комментаторов, нужно сделать специальную функцию, которая это умеет. Для этого открываем functions.php и вставляем туда такой код:

Этот код создает функцию вывода последних пяти комментариев с длиной текста в 80 символов (остальные обрезаются многоточием …) и ссылками на комментарии. Нам осталось только вывести результаты деятельности этой функции в любом месте (обычно это сайдбар на главной странице sidebar.php):

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

tiaurus

Являюсь создателем n-wp.ru — блога о WordPress для новичков. Мне интересно многое, поэтому еще я сделал 123-box.ru — блог о программах для Windows, и tiaurus.info — блог о красоте.

15 комментариев

    • Такие знаки вопроса (иногда квадратики) бывают, когда слово обрезается (ограничение на длину выводимого сообщения). Код простой, и он не умеет обрезать по концу слова, поэтому резет посредине — получаются непонятные символы. Чтобы не было таких символов, нужно использовать более серьезный плагин, например вот один из этих:
      http://n-wp.ru/2021
      http://n-wp.ru/595

    • Решение этой проблемы, чтобы правильно сократить текст.

      Добавьте
      $string = $comment->comment_content;
      $result = implode(array_slice(explode(‘
      ‘,wordwrap($string,60,’
      ‘,false)),0,1));

      Замените этот код:
      < ?php echo strip_tags(substr(apply_filters('get_comment_text', $comment->comment_content), 0, $comment_len)); ?>

      На этот код:
      < ?php echo $result; if($result!=$string) echo'...'; ?>

  • Вставил ваш код в functions — сайт выдал ошибку и не открылся. А жаль :) Сам сторонник максимального облегчения ресурса.

  • Здравствуйте!
    Воспользовался Вашим скриптом, всё работает прекрасно. Спасибо. Проблема только в одном. У меня комментарии сформированы постранично и ссылка, формирующаяся вот этим кодом: comment_post_ID ) . ‘#comment-‘ . $comment->comment_ID; ?>»>< ?php echo $comment->comment_author; ?>:
    получается без кусочка где указан номер страницы. То есть на выходе ссылка должна получится вот такая: http://sergeykorovin.ru/webtv/emigraciya-v-turciyu/comment-page-6#comment-1350. Подскажите пожалуйста, как сделать так, чтобы код прописал кусочек ссылки comment-page-6 в php. То есть, как выбрать номер страницы, очевидно из переменной WordPress, и как его вставить в Ваш скрипт?
    Нигде не могу найти решение этой проблемы…
    Заранее спасибо.

  • В виджет попадают комментарии ещё не одобренные автором, это можно как-то исправить? И ещё, скажите, можно исключить комментарии автора?

    • Это невозможно. Последние комментарии появляются вне зависимости от степени вложенности родительских комментариев и вне зависимости от постов. Они отбираются по времени, а не по родителю. Родителями последних комментариев могут быть комментарии из разных постов.

  • А вы бы не могли подсказать как к ним или рядом сними вывести комментарии и с форума bbpress?

/* ]]> */