jQuery-скрипт для WordPress “Привет, комментатор!”
Написал небольшой jQuery-скриптик, который призван несколько повысить удобство комментирования на WordPress-блоге.
Как работает скрипт
Все очень просто. Он проверяет, заполнены ли обязательные поля Имя/E-mail, и выполняет следующее:
- Если посетитель блога ранее оставлял комментарий, то при следующем комментировании его встречает надпись: “С возвращением, %Имя комментирующего%!”
- При этом поля Имя/E-mail/URL спрятаны, как ненужные в данный момент элементы, остается только поле для комментария.
- Комментатор может поменять свои данные, нажав на ссылку “Изменить”.
- Если у комментатора в браузере отключена поддержка JavaScript, то он увидит полную форму.
Чтобы скрипт выполнялся в принципе, необходимо, во-первых, чтобы у посетителя сайта работали куки в его браузере, во-вторых, чтобы WordPress-блог выводил ранее введенные данные в форме комментирования.
Обязательно убедитесь, что ваш блог выполняет второе условие (выводит ранее введенные данные в форму), иначе никакого смысла в подключении скрипта не будет. Я знаю, что некоторые WordPress-плагины каким-то образом предотвращают появление ранее указанных посетителем данных в коммент-форме. К примеру, так было на моем блоге, когда у меня стоял плагин “Paged Comments”.
Пример
Если вы хотя бы раз оставляли комментарий на моем блоге, то увидите рабочий пример на любой странице, содержащей форму для комментария.
Установка
- В файле comments.php найдите код полей <input /> для ввода Имени/E-mail/URL и оберните его в контейнер <div id=”author-data”></div>. Этот блок - то, что будет прятаться, если поля заполнены.
- Затем создайте какой-либо файл с расширением .js, например, scripts.js и поместите в него скрипт (либо в ранее существующий js-файл):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20var $j = jQuery.noConflict();
$j(document).ready(function() {
var author_val = $j('#author').val();
if( author_val !='' && $j('#email').val() !='' ) {
$j('#author-data').hide();
$j('#author-data').before('<div id="welcome">С возвращением, <strong>'+author_val+'</strong>! <a href="#">Изменить »</a></div>')
$j('#welcome a').toggle(
function() {
$j('#author-data').show(300);
$j(this).html('Свернуть »');
return false;
},
function() {
$j('#author-data').hide(300);
$j(this).html('Изменить »');
return false;
}
);
}
}) - Закиньте этот файл в папку с вашей темой.
- Теперь подключите скрипт, добавив следующий код в файл header.php перед тегом </head>:
1<script type="text/javascript" src="<?php bloginfo('stylesheet_directory'); ?>/scripts.js"></script>
- Если в вашей теме не подключен фреймворк jQuery, то перед строкой из предыдущего пункта добавьте такую:
1<?php wp_enqueue_script('jquery'); ?>
- Вот и все.
Теперь, я думаю, вашим посетителям-комментаторам будет приятно, если вы встретите их приветом и спрячете “лишние” поля из формы комментариев =)
Смотрите выше комментарий №51.
Спасибо за скрипт и за отличный сайт.
Пишу комментарий, чтобы увидеть как это работает… иначе ведь не проверишь. Идея потрясная! А еще мне понравилось, что под окном записи комментария есть “правила комментирвания” есть такой плагин или это тоже собственное ноу-хау?
Спасибо!
К сожалению, в данный момент на блоге это не работает из скрипта кэширования. А на счет правил комментирования - это не плагин.
Почему “не работает”? Я вижу “С возвращением, Allpa!”, значит, работает?
Точно, я уже и сам забыл, что делал одну штуку, чтобы запоминалка работала. Так что да, с этим все в порядке. Поэтому забираю обратно свои слова из предыдущего моего коммента =)
Большое спасибо:)
Димокс, ай нид ё хелп :)
В очередной раз переползаю на новый шаб, на котором не работало сохранение кукисов (если ты помнишь, я тут тебя уже бомбирдировала вопросами на эту тему). Проблема с кукисами была решена подстановкой в файл comments.php строчек →
2
3
4
5
6
$commenter = wp_get_current_commenter();
$comment_author = $commenter['comment_author'];
$comment_author_email = $commenter['comment_author_email'];
$comment_author_url = esc_url($commenter['comment_author_url']);
?>
Потом я взялась прикручивать “Привет, автор!”, потому как до решения вопроса с кукисами скрипт не работал, есссно. Всё прикрутилось, но работает странно: любой автор приветствуется как undefined.
То есть кто бы ни отправлял камент, строчка приветствия всегда одна →
Я совершенно растерялась.. о.О
Ты не знаешь, случаем, что это, почему и где подправить, если можно вообще подправить?
Спасибо!
Димокс, я как всегда — поспешила с вопросом :(
А потом взяла да и тупо скопировала кусок кода →
из оттуда, где он у меня работал, туда, где он у меня не работал :)
И всё получилось!
Прошу извинить за панику, мне стыдно.
Но чисто теоретически.. просто ради интересу: почему же выскакивал undefined, который, как я почитала, выскакивает, когда скрипт не могёт, в данном случае, идентифицировать комментатора.
Тут, небось, проблема в коде шаблона: скрипт и шаблон просто не поняли друг друга :)
Вот вы уже сами и ответили на свой вопрос.
Хочется проверить, придется комментировать)