0

Выводим количество комментариев рядом с ником комментатора

Опубликовано: 27.04.2011 | Рубрика: Хитрости Wordpress

У меня на блоге стоит плагин топ-комментаторов, который показывает активность комментаторов за последний месяц. К сожалению, он не показывает общей картины активности того или иного читателя моего блога. Чтобы решить эту проблему, я решил вывести рядом с ником каждого комментатора общее количество его комментариев.

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

function commentCount() {

global $wpdb;

$count = $wpdb->get_var('SELECT COUNT(comment_ID) FROM ' . $wpdb->comments. ' WHERE comment_author_email = "' . get_comment_author_email() . '"');

echo $count . ' comments';

}

Как видите, во внимание берётся  email, который указал комментатор в соответственное поле.

После этого нужно найти код, который отвечает за вывод комментов (это может быть comments.php или же functions.php, как было в моем случае). Вставляем в нужное место вывод количества комментов, функцию для которого мы создали минуту назад.

<?php commentCount(); ?> 

Вот что у меня получилось:

Внимание!

В комментариях один добрый человек (ник Pepper) посоветовал изменить этот код, так как он может «положить» блог.

Цитирую:

Хотите положить этот сайт? Пишите побольше комментов! :)

С таким плагином на каждый комент делается запрос к базе данных. И даже если 10 коментов написал один и тот же автор, все равно запрос будет сделан 10 раз.
100 коментов – 100 запросов, 1000 – 1000 и т.д. В итоге один успешный пост с кучей коментов станет надгробным камнем для сайта.

Оптимизируйте!
1. Выбираем все уникальные email адреса комментаторов данного поста и сохраняем а массив.
2. Для каждого адреса в массиве считаем кол-во коментов.
3. Для каждого комента вытягиваем email, потом проверяем есть ли он в массиве. Если есть, выводим число.

Можно оптимизивать еще дальше и сделать все в одном SQL запросе! GROUP BY вам в помощь! ;)

Я заметил, что у меня блог в последнее время начал тупить (как раз в этот период у меня на блоге было очень много комментариев). Итак, вот пост Pepper’a, в котором он делится с нами кодом, который не так будет нагружать блог.

P.S. Узнайте как оказывается легко сделать блог. Я тоже когда то думал, что это сложно

Понравилась статья? Подписывайтесь на RSS, чтобы быть в курсе всех самых интересных новостей моего seo блога!

Sidash

Предыдущая
«
Следующая
»