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

Понесло меня последние дни на написание постов о том, как выводить ту либо иную функцию без плагинов. Просто я решил максимально распрощаться с плагинами, которые довольно громоздки и создают ненужную нам нагрузку на сервер.

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

Начну с того, что я перелопатил не один десяток ресурсов в поисках возможности вывода последних комментариев с аватарами без плагинов. Устанавливал на свой блог и проверял в работе, однако большинство из найденных функций меня не устраивали по ряду причин: выводились все те же трекбеки, не выводились аватары комментаторов и так далее.

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

[note color="#e0f3d8"] function get_avatar_recent_comment() {
global $wpdb;
$sql = “SELECT DISTINCT ID, post_title, post_password, comment_ID,
comment_post_ID, comment_author,
comment_author_email, comment_date_gmt, comment_approved,
comment_type,comment_author_url,
SUBSTRING(comment_content,1,70) AS com_excerpt
FROM $wpdb->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 3″;
$comments = $wpdb->get_results($sql);
$output = $pre_HTML;
$gravatar_status = ‘on'; /* off if not using */
foreach ($comments as $comment) {
$email = $comment->comment_author_email;
$grav_name = $comment->comment_author;
$grav_url = “http://www.gravatar.com/avatar.php?
gravatar_id=”.md5($email). “size=32″; ?>
<ul>
<li>
<div class=”gravatar”>
<?php
$pathtotheme = get_bloginfo(‘stylesheet_directory’);
if(!empty($comment -> comment_author_email))
{
$md5 = md5($comment -> comment_author_email);
$default = urlencode(“$pathtotheme/images/avatar.png”);
echo “<img src=’http://www.gravatar.com/
avatar.php?gravatar_id=$md5;size=40;
default=$default’ width=’30’ height=’30’ alt=’commenter’ />”;
}
?></div>
<a href=”<?php echo get_permalink($comment->ID); ?>
#comment-<?php echo $comment->comment_ID; ?>”
title=”on <?php echo $comment->post_title; ?>”>
<?php echo strip_tags($comment->comment_author); ?>:
<?php echo strip_tags($comment->com_excerpt); ?>…</a>
</li>
</ul>
<?php
}
} [/note]

После этого нам нужно вывести список последних комментариев. Для этого в нужное место (это может быть боковая панель, подвал либо страница) вот такую функцию вызова:

[note color="#e0f3d8"] <?php get_avatar_recent_comment(); ?> [/note]

Что из этого получилось, можете лицезреть в конце каждого поста в разделе Последние комментарии.

Меня еще не совсем устраивает полученный результат. Нужно будет еще поковыряться и возможно сделать корректировки в CSS.

Если Вам понравилась статья, не забывайте поделиться с друзьями:

Предыдущие статьи из категории: CMS, дизайн, шаблоны

  • Как вывести количество просмотров страницы
  • Отключаем автосохранение статей
  • Делаем постраничную навигацию в WordPress без плагина.
  • Лучшие галереи для WordPress
  • Обновил Вордпресс до версии WordPress 3.2.1.
  • Template CMS-еще одна простая система управления сайтом.

  • 4 отзывов на статью: “Выводим последние комментарии с аватарами без плагинов.

    1. У вас, судя по всему, работает. Но не уверен, что будет работать так же хорошо у тех, кто скопирует код из поста. Например, вот это что такое: “amp;amp;amp;amp;”? Ещё прикольно, что ссылка на аватар генерируется и записывается в переменную $grav_url, но в дальнейшем не используется, а генерируется заново с другими параметрами – это не влияет на работоспособность, конечно, но просто весело. :)

    2. Павлуха говорит, что:

      вот это что такое: “amp;amp;amp;amp;”?

      Сам не знаю. :-D Удалил, все работает.
      Буду очень рад, если посоветуете что-нибудь усовершенствовать.

    3. Вообще-то, не так уж всё плохо. Просто я люблю чистоту в коде. :) Вообще-то, одним нормальным амперсандом параметры запроса аватара должны отделяться (а в ссылке там 3 параметра: gravatar_id, size, default):

      avatar.php?gravatar_id=$md5&size=40&default=$default

      Иначе gravatar.com нормально примет только первый параметр, а остальные 2 (размер генерируемого аватара и аватар по умолчанию) проигнорирует – точнее, отправит то, что у него запрограммировано по умолчанию. Т.е. ваша ссылка на аватарки работает, как:

      avatar.php?gravatar_id=$md5

      Да и ладно)

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

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

    Вы можете использовать это HTMLтеги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>