Улучшаем комментарии на wordpress - Авторские материалы о продвижении вконтакте, wordpress фишках и плагинах, SMO, SEO, дизайне
Отборная информация, которая вставляет!

Улучшаем комментарии на wordpress

Сегодня мы поговорим о том как сделать внешний вид ваших комментариев намного лучше, убрать спам, а также о множестве других хаков для комментариев на wordpress

1. Добавляем нумерацию для комментариев


9643e5d7

Вам нужно будет найти в файле comments.php вашей темы строку

<?php foreach ($comments as $comment) : ?>

И перед ней вставить код

<?php $i = 0; ?>

а после неё такой код

<?php $i++; ?>

Теперь можно будет использовать функцию для вставки номера комментария

<?php echo $i; ?>

2. Как удалить весь спам с базы данных

Бывает такая фигня, что вы открыли сайт, а забыли поставить туда какой-нибудь плагин против спама, за 1 месяц у вас может собраться спама более 1000 и удалять его ручками — долго. Для того, чтобы сделать быстро — зайдите в панель управления вашей базой phpmyadmin и нажмите на вкладке SQL, далее выполните следующую команду

DELETE from wp_comments WHERE comment_approved = '0';

3. Подсветка комментариев администратора

Откройте comments.php и найдите строку

<li class='<?php echo $oddcomment; ?>' id=”comment…

замените её на

<li class='<?php
/* Only use the authcomment class from style.css if the user_id is 1 (admin) */
if (1 == $comment->user_id)
$oddcomment = 'authcomment';
echo $oddcomment;
?>' id=”comment…

Теперь вам доступен класс, которым можно выделить комменты админа

.authcomment {
background-color: #B3FFCC !important;
}

4. Чередование цветов для комментариев

Откройте css файл вашей темы и поместите где-то внизу:

.color1 {
background-color: #DBDBDB;
}
.color2 {
background-color: #EEEEEE;
}

В самом верху comments.php, поместите.

<?$i;?>

Далее найдите

<?php foreach ($comments as $comment) : ?>
<div class="commentbox">
<div class="commentid">

И замените на

<?php foreach ($comments as $comment) : ?>
<div id="commentbox" class="<?=($i%2)?"color1":"color2";$i++;?>">
<div class="commentid">


Все, теперь фон комментариев будет меняться, а значит легче восприниматься

5. Функция последние комментарии

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

<?php
function recent_comments($src_count=10, $src_length=60, $pre_HTML='<ul>', $post_HTML='') {
global $wpdb;
$sql = "SELECT DISTINCT ID, post_title, post_password, comment_ID, comment_post_ID, comment_author, comment_date_gmt, comment_approved, comment_type,
SUBSTRING(comment_content,1,$src_length) 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 $src_count";
$comments = $wpdb->get_results($sql);
$output = $pre_HTML;
foreach ($comments as $comment) {
$output .= "<li><a href=\"" . get_permalink($comment->ID) . "#comment-" . $comment->comment_ID . "\" title=\"on " . $comment->post_title . "\">" . strip_tags($comment->com_excerpt) ."...</a></li>";
}
$output .= $post_HTML;
echo $output;
}
?>

Теперь доступна функция с помощью которой можно выводить последние комментарии где угодно

<?php recent_comments(); ?>

6. Отделяем трекбеки от комментариев

Откройте comments.php, и найдите код

<?php foreach ($comments as $comment) : ?>

После него вставьте следующее

<?php $comment_type = get_comment_type(); ?>
<?php if($comment_type == 'comment') { ?>

Теперь найдите

<?php endforeach; /* end for each comment */ ?>

И перед ним вставьте

<?php } else { $trackback = true; } /* End of is_comment statement */ ?>

Теперь в ваших комментариях будут отсутствовать трекбеки, для них мы создадим новый цикл.

Найдите

<?php else : // this is displayed if there are no comments so far ?>

И перед ним вставьте:

<?php if ($trackback == true) { ?>
<h3>Trackbacks</h3>
<ol>
<?php foreach ($comments as $comment) : ?>
<?php $comment_type = get_comment_type(); ?>
<?php if($comment_type != 'comment') { ?>
<li><?php comment_author_link() ?></li>
<?php } ?>
<?php endforeach; ?>
</ol>
<?php } ?>

7. Боремся со спамом

— плагин капча в виде картинок с человечеками, нажимаешь на того, что с поднятой рукой — и проходишь проверку.

— ещё одна капча, более надежная, чем предыдущая

математическая капча

8. Древовидные комментарии

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

9. Плагины и утилиты

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

добавляет возле имени автора кнопочку при нажатии на которую в форму комментирования вставляется его имя.

Новая с вашего компьютера без захода в админку


 

Похожие статьи:



29 комментариев к “Улучшаем комментарии на wordpress”

  1. :

    Спасибо за подборочку. Загуглился весь. А можно совместить подсветку админа комментариев с чередованием?

  2. :

    Спасибо за статью!
    В функции «Последние комментарии» как можно выводить ники комментаторов?

    • ETNO:

      нужно подправить строку $output, зайдите на — скачайте плагин, откройте его код и вставьте оттуда кусок кода, там он с ником комментатора

  3. :

    Далее найдите
    1.
    2.
    3.
    ____________________________________

    Я обыскала всеь свой comments.php файл, но таких строк не нашла.

    Помогите пожалуйста. Очень хочется сделать Чередование цветов для комментариев

    Я свой файл comments.php закачала по этой ссылке.

  4. :

    Полезная статья. Мне понравилась. А как сделать чтобы показывало количество комментариев для каждого отдельного комментатора?

    • ETNO:

      — это код, чтобы вывести топ комментаторов. Уберите с него строчки где выводятся имя автора, аватар и массив, оставьте только вывод кол-ва комментариев. Если уж не разбираетесь в коде — маякните, я вам напишу код

  5. :

    Подскажи, а какой плагин отвечает у тебя в блоге за «ответить» на комментарий ?

  6. :

    А подскажите, пожалуйста
    Первый способ действителен для WP 3?
    Что-то я не могу найти ни в comments.php ни в function.php
    заранее балгодарен за ответ

  7. :

    Здравствуйте. А Вы не могли бы опубликовать файл comments.php, в котором была бы функция $oddcomment. Просто в темах default и classic я ее не нашел, и в той теме, которую я сейчас создаю (результат работы темы можно посмотреть в подписи) этой функции тоже нет. Где-то читал, что эта функция есть в 95% тем. Странно, что дефолтные темы без них. Сейчас у меня подсветка получается только без древовидности. А хотелось бы и с подсветкой, и с древовидностью. Адрес для скачивания темы:

    • ETNO:

      сейчас в темах обычно ставят wp_list_comments — этот тег генерирует список комментов, посмотрите о неё в кодексе. А вообще, я пользуюсь решением подобным как описано здесь

  8. :

    Спасибо!
    Помогли мне!

  9. :

    Замечательная публикация. Просто и гениально.

  10. :

    Спасибо, за советы как раз это искал!

  11. :

    Класс попробую улучшить на своем сайте!!

  12. :

    Добрый день если можете помогите поставил новую тему пропали комментарии что делать ведь на старой у меня всё работало но вот только тема очень хорошая и не хочется менять что нужно здесь поменять что бы комментарии появились.И если можно сделал бог а страницы с самого основания блога не отображаются а хотелось что бы 1234567итд.Очень Вас прошу помогите

  13. Максим:

    Не подскажете, уже обыскался — когда пользователь добавляет коммент, но не вводит в графу сайт url, то коммент не добавляется вообще, получается, что надо в обязательном порядке вводить url. Как это исправить, может кто сталкивался?

    • ETNO:

      нужно смотреть шаблон, обычно поле сайт — не обязательно, но может в вашей теме как-то сделано, что это поле обязательно к заполнению

  14. :

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

    • ETNO:

      плагинов нет, это настраивается в самой теме. Ну или поставьте плагин от disqus

      • алексей:

        Помогите пожалуйста,
        Я поставил DISQUS, но почему то не отображается он у меня.
        Почему?
        Когда я установил на сайте сделаном на Джумле, вообще без проблем подхватился, но в Водпрессе не идет. Что может быть?
        Шаблон стоит Nano2.
        Спасибо.
        Жду помощи…

        • ETNO:

          так врядли кто-то поможет, факторов может быть неограниченное кол-во, нужно больше данных

          • Алексей:

            Заработало! В настройках плагина нечаянно изменил отображение.
            Сейчас все показывает.

  15. :

    Спасибо. Пригодилось для моего блога