Как в WordPress вывести список лучших комментаторов

Для того, чтобы на движке WordPress вывести список лучших комментаторов, т.е. тех посетителей, которые написали больше всего комментариев, в порядке убывания, можно с помощью программного кода с SQL запросом, которые будут показаны чуть ниже. Вставьте этот сниппет в файл под названием functions.php, - он есть в папке с темой. Идентификация незарегистрированных пользователей ведется по адресам электронной почты.

<?php
function spisok_luchshih_kommentatorov($skolko_pokazat = 5) {
    global $wpdb;
    $rezultati = $wpdb->get_results('
                SELECT
                        COUNT(comment_author_email) AS comments_count, comment_author_email, comment_author, comment_author_url
                FROM
                        ' . $wpdb->comments . '
                WHERE
                        comment_author_email != "" AND comment_type = "" AND comment_approved = 1
                GROUP BY
                        comment_author_email
                ORDER BY
                        comments_count DESC, comment_author ASC
                LIMIT ' . $skolko_pokazat
    );
    $vivod = '<aside class="widget widget_top_kommentatorov">
        <h3 class="widget-title">Топ комментаторов</h3>
        <ol id="top_kommentatorov">';
    foreach ($rezultati as $rezultat) :
        $vivod .= "<li><div class='alignleft'>" . 
            get_avatar($rezultat->comment_author_email, 24) . 
            "</div>{$rezultat->comment_author}<br />
                Оставил(а) комментариев: {$rezultat->comments_count}</li>";
    endforeach;
    $vivod .= "</ol></aside>
<style>
ol#top_kommentatorov {list-style:none;padding:0;margin:0;}
ol#top_kommentatorov li {margin:0 0 8px;padding:0 0 4px;min-height:30px;background-image:none;list-style:none;}
ol#top_kommentatorov .alignleft {margin:0 8px 0 0;padding:0;float:left;}
ol#top_kommentatorov img.avatar {background-color:#FFF;border:1px solid #C6C6C6;box-shadow:none;padding:4px;margin:0;}
</style>";
    print $vivod;
}
?>

Далее измените стили и HTML разметку под вашу конкретную тему. Затем в шаблоне сайдбара (обычно это sidebar.php) просто вызовите созданную функцию spisok_luchshih_kommentatorov(<количество_авторов>);.

В TwentyTwelve выглядеть это будет вот так вот: с аватарками, именем посетителя и количеством оставленных комментариев.

WordPress лучшие комментаторы

Собственно на этом все.





© 2012-2014 Druweb.ru. Вы можете спокойно копировать любые материалы сайта только при наличии обратной ссылки.