Все, что Вы хотели знать о комментариях в WordPress + 9 полезных хаков

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

комментарии wordpress

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

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

Подписка по email — плагин комментариев WordPress

Скачать плагин подписки на комментарии

Коды для вставки комментариев WordPress

Код вставки комментариев в шаблон

<?php comments_template(); ?>

Коды для ручной вставки чекбокса

<?php show_subscription_checkbox(); ?>

или формы подписки на комментарии WordPress (после тега

в шаблоне вывода комментов):

<?php show_manual_subscription_form(); ?>

Код для отметки участников, подписанных на комментарии, знаком @ (можно вставить перед именем комментатора в шаблоне вывода комментариев)

<?php
  if (function_exists('comment_subscription_status')) {
    if (comment_subscription_status()) {
      echo '@';
    }
  }
?>

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





1. Чередование цветов
Зайдите в редактор шаблона, откройте файл comments.php (или какой-то еще, который в вашей теме оформления отвечает за вывод комментариев вордпресс) и ставим в самом верху такой код:

<?$i;?>

после чего находим в нем код, где начинают выводиться комменты. Он может выглядеть так:

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

а для второго на этот:

<?php foreach ($comments as $comment) : ?>
<li id="comment-<?php comment_ID() ?>" class="<?=($i%2)?"color1":"color2";$i++;?>">
<?php comment_text() ?>

Если все сделали правильно, то фоновый цвет у комментариев должен начать чередоваться.

2. Выделение комментария автора

Сначала добавляем в стили вот такой код:

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

Потом находим в файле comments.php что-то типа этого

<li class="<?php echo $wpvoprosovcom; ?>" id="comment...>

и заменяем на

<li class="<?php
if (1 == $comment->user_id)
$wpvoprosovcom = "authcomment";
echo $wpvoprosovcom;
?>" id="comment…

3. Изменить аватар по умолчанию

Для начала создайте картинку для будущего дефолтного аватара, например такую:

Далее ищем в functions.php такой код (40 — это размер картинки, то есть цифра может отличаться):

<?php echo get_avatar( $comment, 40 ); ?>

и заменяем на свой с указанным адресом к нашему изображению

<?php echo get_avatar( $comment, 48, 'http://wp-voprosov.net/wp-content/uploads/2012/03/defolt-avatar.jpg'); ?>

4. Разрешенные тэги

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

<?php echo allowed_tags(); ?>

5. RSS лента комментариев

…а RSS ленту комментариев, вот такой:

<?php comments_rss_link($link_text); ?>

6. Нумерация комментариев

Чтобы пронумеровать комментарии, оставленные к каждой записи, находим код:

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

и заменяем его на следующий:

<?php $i = 0; ?>
<?php foreach ($comments as $comment) : ?>
<?php $i++; ?>

И теперь в цикле, в том месте, где необходимо вывести номер комментария, вставляем код:

<?php echo $i; ?>

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

Для того, чтобы показать список последних комментариев в виджете в основном пользуются плагином WP Recent Comments или его аналогами. Мы же вставим небольшой код в пару файлов системы.

Открываем functions.php и добавляем код:

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>";
    }
}

В нем вы можете внести какие-то изменения, задать стили для класса блока, поменять html структуру, назначить количество выводимых комментов (get_comments(‘number=6’)), количество знаков ($comment_len = 80), отрегулировать размер аватара (get_avatar($comment,$size=’40’ )).

И теперь сохраняем и в виджете или еще где-то, где нужно отобразить последние комментарии, вставляем строку:

<?php get_avatar_recent_comment(); ?>

8. Отделить трекбэки

И на закуску отделим трекбэки (уведомления об установки на блог внешних ссылок) от комментариев. Для этого ищем в уже затертом нами до дыр comments.php код начала цикла вывода комментариев:

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

и после него вставляем

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

Далее находим конец цикла

<?php endforeach;?>

и после него добавляем:

<?php } else { $trackback = true; } ?>

Все-все, не зевайте, уже скоро…

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

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

и ПЕРЕД ней добавляем код:

<?php if ($trackback == true) { ?>
<h3>Трекбэки</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 } ?>




9. Показать количество оставленных комментариев рядом с ником

Для реализации этой затеи нам надо будет добавить новую функцию в файл functions

function author_comment_count(){
    $oneText = '1';
    $moreText = '%';
    global $wpdb;
    $result = $wpdb-&gt;get_var('
        SELECT
            COUNT(comment_ID)
        FROM
            '.$wpdb-&gt;comments.'
        WHERE
            comment_author_email = "'.get_comment_author_email().'"'
    );
    if($result == 1): 
        echo str_replace('%', $result, $oneText);
    elseif($result &gt; 1): 
        echo str_replace('%', $result, $moreText);
    endif;
}

И теперь рядом с ником в файле шаблона вывода комментариев (обычно comments.php) вставить код:

<?php author_comment_count(); ?>

Кроме всего прочего, в WordPress можно подключить системы комментариев из социальных сетей — ВКонтакте и Facebook, а также разделить их по вкладками. Продолжение серии статей по настройке комментариев выйдет уже совсем скоро, и чтобы их не пропустить, подпишитесь…

Поделись этой статьей с друзьями!

Это будет интересно прочитать:

Добавить комментарий