Рубрика: Комментарии
Как «упростить» форму добавления комментариев?
С целью повышения количества комментариев можно "упростить" форму добавления комментариев, вырезав из нее все лишние детали, которые обычно смущают посетителей. По сути, после такого упрощения комментаторам нужно будет заполнить только одно единственное поле "Комментарий" без необходимости указывать свой email-адрес и свое имя (по умолчанию используется имя "Гость"). Для этого вам необходимо добавить в файл functions.php вашей темы следующий код:
Как вывести список последних комментаторов каждой записи?
В цикле вывода записей (на главной, в рубриках и т.д.) у каждой записи можно вывести ники последних комментаторов текущей записи. Для этого вам необходимо добавить в нужный файл шаблона вашей темы следующий код:
<?php $args = array('number' => 5, 'post_id' => get_the_ID(), 'status' => 'approve'); $latest_comment = get_comments($args); if ($latest_comment) {echo '<p>Комментарии от: ';} if ($latest_comment) foreach($latest_comment as $comment) { ?> <?php echo get_avatar($comment->comment_author_email, 24) . ' '; ?> <?php echo $comment->comment_author . ' '; ?> <?php } ?> <?php echo '</p>'; ?> |
Недостаток у этого кода только один - он не учитывает того, что один комментатор может оставить несколько комментариев и, поэтому возможна ситуация, когда в списке один человек повторяется 5 раз. Это можно изменить с помощью такого кода:
Как скрыть комментарии на сайте от гостей?
Если по каким-то причинам вы хотите скрыть комментарии сайта от гостей (неавторизованных пользователей), то воспользуйтесь следующим кодом, вставленным в файл functions.php вашей темы:
//скрытие комментариев от гостей start function wph_hide_comments_for_guests() { if (is_user_logged_in()) {return;} add_filter('comments_array', '__return_empty_array'); add_filter('get_comments_number', '__return_zero'); add_filter('comments_open', '__return_false'); } add_action('init', 'wph_hide_comments_for_guests'); //скрытие комментариев от гостей end |
Комментарии будут полностью скрыты и гости даже не поймут, что комментарии на сайте вообще есть. Скрыты будут как сами комментарии, так и ссылки на них. Этот код не затрагивает разве что только виджет последних комментариев - в самой теме все упоминания о комментариях будут полностью удалены.
Как запретить слишком длинные урлы в поле «Сайт»?
Слишком длинный урл в поле "Сайт" в оставленном комментарии практически всегда означает, что это спамный комментарий. Потому что нормальные люди всегда оставляют ссылку на главную страницу своего сайта, а вот спам-боты раскручивают внутренние страницы своих сайтов, поэтому их ссылки всегда длинные. Можно не заморачиваться с проверкой таких комментариев, а сразу кидать их в папку спам. Для этого вам необходимо добавить в файл functions.php вашей темы следующий код:
//кидаем в спам коммент со слишком длинным урлом start function wph_check_comment_url_len($approved, $data) { return (strlen($data['comment_author_url']) > 35) ? 'spam' : $approved; } add_filter('pre_comment_approved', 'wph_check_comment_url_len', 99, 2); //кидаем в спам коммент со слишком длинным урлом end |
Длина нормальной ссылки редко превышает 35-40 символов. Но вы можете увеличить это число в коде, чтобы разрешить более длинные урлы в поле "Сайт".
Как добавить свое поле в форму добавления комментария?
При необходимости в форму добавления комментариев на вашем сайте можно включить свои дополнительные поля вроде "Город" или "Twitter" (и любое другое). А затем эти поля можно вывести в самом комментарии (как на скриншоте). Для этого вам необходимо добавить в файл functions.php вашей темы следующий код:
Как при подсчете комментариев не учитывать пинги?
Темы для WordPress для вывода числа комментариев используют в основном функции comments_popup_link() и comments_number(), которые по умолчанию считают все комментарии записи, включая пинги (обратные ссылки и уведомления). Если ваша тема не выводит пинги, то число комментариев может смущать - оно может быть больше реального числа комментариев. Исправить это просто, для этого вам необходимо добавить в файл functions.php вашей темы следующий код: