Я стараюсь использовать плагины лишь в том случае, если задача, которую они выполняют, не решается тривиальными методами.Ну а виджеты вообще избегаю использовать. Это не значит, что я и вас призываю к этому, но мои принципы упрощения говорят, что не следует плодить сущности без надобности. Ну хватит философии, переходим к делу. Насколько я знаю, сейчас WordPress не позволяет вот так вот запросто вывести последние комментарии с аватарами в любом месте одним нажатием кнопки или вставкой одной строчки кода. Давайте это поправим.
|
Пример кода, выводящего последние комментарии с аватарами. Этот код можно использовать для вывода комментариев в сайдбаре, не прибегая к дополнительным виджетам и плагинам.
|
Чтобы вывести список последних комментариев, снабженных ссылками на эти комментарии и аватарами комментаторов, нужно сделать специальную функцию, которая это умеет. Для этого открываем functions.php и вставляем туда такой код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | function dp_recent_comments() { $comment_len = 80; $comments = get_comments('number=6'); if ($comments) { foreach ($comments as $comment) { //ob_start(); ?> <li> <div style="float: left;"><?php echo get_avatar($comment,$size='40' ); ?></div> <a href="<?php echo get_permalink( $comment->comment_post_ID ) . '#comment-' . $comment->comment_ID; ?>"><?php echo $comment->comment_author; ?>:</a> <br /><em><?php echo strip_tags(substr(apply_filters('get_comment_text', $comment->comment_content), 0, $comment_len)); ?>...</em> </li> <?php //ob_end_flush(); } } else { echo "<li>No comments</li>"; } } |
Обратите внимание на следующие переменные (цифры) в коде:
1 | $comment_len = 80 |
— длина выводимого текста комментариев в знаках
1 | get_comments('number=6') |
— количество выводимых комментариев
1 | get_avatar($comment,$size='40' ) |
— размер аватара
Этот код создает функцию вывода последних шести комментариев с длиной текста в 80 знаков (остальные обрезаются многоточием ...), ссылками на комментарии, никами комментаторов и их аватарами. Чтобы комментарии и картинки не наезжали друг на друга и имели более структурированный вид, они оформлены в виде таблицы. Нам осталось только вывести результаты деятельности этой функции в любом месте (обычно это сайдбар на главной странице sidebar.php):
1 2 | <h3>Комментарии</h3> <?php dp_recent_comments(); ?> |
По сути этот код — настоящий плагин, встроенный в тему. Он позволяет нам не прибегать к помощи других плагинов и виджетов, тем самым экономя ресурсы. Понятно, что вы можете изменить оформление вывода по своему усмотрению.








Спасибо, очень пригодилось.
Единственное, что не понял – чего за знаки вопроса в конце местами – http://clip2net.com/clip/m10803/1268157501-clip-4kb.jpg.
Такие знаки вопроса (иногда квадратики) бывают, когда слово обрезается (ограничение на длину выводимого сообщения). Код простой, и он не умеет обрезать по концу слова, поэтому резет посредине – получаются непонятные символы. Чтобы не было таких символов, нужно использовать более серьезный плагин, например вот один из этих:
http://n-wp.ru/2021
http://n-wp.ru/595
Вставил ваш код в functions – сайт выдал ошибку и не открылся. А жаль :) Сам сторонник максимального облегчения ресурса.
Попробуйте другой способ вывода последних комментариев с аватарами и без плагинов: http://n-wp.ru/3200
Пусть комментарии посередине слова обрезаются, но можно хоть как-то знаки вопроса убрать?!
Можно. Для этого в коде вместо substr нужно использовать mb_substr.
если ставлю mb_substr то выводится весь комментарий