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

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

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

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

comments
LEFT OUTER JOIN $wpdb->posts ON ($wpdb->comments.comment_post_ID =
$wpdb->posts.ID)
WHERE comment_approved = '1' AND comment_type = '' AND
post_password = ''
ORDER BY comment_date_gmt DESC LIMIT ".$posts;
 
$comments = $wpdb->get_results($sql);
 
foreach ($comments as $comment) {
?>
  • <a href="ID); ?>#comment-comment_ID; ?>" title=" post_title; ?>"> comment_author); ?>: com_excerpt); ?>...
  • Этот код создает функцию вывода последних пяти комментариев с длиной текста в 80 символов (остальные обрезаются многоточием …) и ссылками на комментарии. Нам осталось только вывести результаты деятельности этой функции в любом месте (обычно это сайдбар на главной странице sidebar.php):

    
    

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

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

    16 Комментарии

      • Такие знаки вопроса (иногда квадратики) бывают, когда слово обрезается (ограничение на длину выводимого сообщения). Код простой, и он не умеет обрезать по концу слова, поэтому резет посредине – получаются непонятные символы. Чтобы не было таких символов, нужно использовать более серьезный плагин, например вот один из этих:
        https://n-wp.ru/2021
        https://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'...'; ?>

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

    2. Здравствуйте!
      Воспользовался Вашим скриптом, всё работает прекрасно. Спасибо. Проблема только в одном. У меня комментарии сформированы постранично и ссылка, формирующаяся вот этим кодом: 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, и как его вставить в Ваш скрипт?
      Нигде не могу найти решение этой проблемы…
      Заранее спасибо.

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

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

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

    Оставить комментарий

    Ваш электронный адрес не будет опубликован.


    *