Сегодня мы поговорим о том как сделать внешний вид ваших комментариев намного лучше, убрать спам, а также о множестве других хаков для комментариев на 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. Боремся со спамом
— плагин капча в виде картинок с человечеками, нажимаешь на того, что с поднятой рукой — и проходишь проверку.
— ещё одна капча, более надежная, чем предыдущая
математическая капча
8. Древовидные комментарии
сейчас wordpress поддерживает эту функцию и без плагинов, но не все темы имеют такую опцию. Вот о том, как сделать вашу тему поддерживающей древовидные комментарии
9. Плагины и утилиты
— плагин цитирования. Добавляет возможность вставлять цитаты одним кликом в форму комментирования (как на форумах)
добавляет возле имени автора кнопочку при нажатии на которую в форму комментирования вставляется его имя.
Новая с вашего компьютера без захода в админку
Понравилась статья? - Подпишись.
Или поделись полезным с миром
Похожие статьи:

Спасибо за подборочку. Загуглился весь. А можно совместить подсветку админа комментариев с чередованием?
Спасибо за статью!
В функции «Последние комментарии» как можно выводить ники комментаторов?
нужно подправить строку $output, зайдите на — скачайте плагин, откройте его код и вставьте оттуда кусок кода, там он с ником комментатора
Далее найдите
1.
2.
3.
____________________________________
Я обыскала всеь свой comments.php файл, но таких строк не нашла.
Помогите пожалуйста. Очень хочется сделать Чередование цветов для комментариев
Я свой файл comments.php закачала по этой ссылке.
пришлите мне на почту fleeke@gmail.com вашу тему, я гляну что у вас там
Полезная статья. Мне понравилась. А как сделать чтобы показывало количество комментариев для каждого отдельного комментатора?
— это код, чтобы вывести топ комментаторов. Уберите с него строчки где выводятся имя автора, аватар и массив, оставьте только вывод кол-ва комментариев. Если уж не разбираетесь в коде — маякните, я вам напишу код
Подскажи, а какой плагин отвечает у тебя в блоге за «ответить» на комментарий ?
никакой — это настройки самой темы. ну а если нужен такой плагин, то есть такой
А подскажите, пожалуйста
Первый способ действителен для WP 3?
Что-то я не могу найти
ни в comments.php ни в function.phpзаранее балгодарен за ответ
нужно смотреть каким способом сделаны комменты в теме, т.е. зависит не от версии, а больше от темы
Здравствуйте. А Вы не могли бы опубликовать файл comments.php, в котором была бы функция $oddcomment. Просто в темах default и classic я ее не нашел, и в той теме, которую я сейчас создаю (результат работы темы можно посмотреть в подписи) этой функции тоже нет. Где-то читал, что эта функция есть в 95% тем. Странно, что дефолтные темы без них. Сейчас у меня подсветка получается только без древовидности. А хотелось бы и с подсветкой, и с древовидностью. Адрес для скачивания темы:
сейчас в темах обычно ставят wp_list_comments — этот тег генерирует список комментов, посмотрите о неё в кодексе. А вообще, я пользуюсь решением подобным как описано здесь
Спасибо!
Помогли мне!
Замечательная публикация. Просто и гениально.
Спасибо, за советы как раз это искал!
Класс попробую улучшить на своем сайте!!