Отборные материалы о дизайне, seo, wordpress

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

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

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

Вам нужно будет найти в файле 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. Боремся со спамом

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

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

математическая капча math comment spam protection

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

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

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

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

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

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

 

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



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

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

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

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

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

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

    Я свой файл comments.php закачала по этой ссылке.
    http://fleek.org/fleekaj/WBVNEgxMS1wDSAtKCBZfWFVQFxwCWlhKUl4IA0oeRxFBEEALBQJS/

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

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

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

  7. lev:

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

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

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

  10. old:

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

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

оставить отзыв