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'); ?>
- Вот и все.
Теперь, я думаю, вашим посетителям-комментаторам будет приятно, если вы встретите их приветом и спрячете “лишние” поля из формы комментариев =)
Индерестный скрипт, только помоемому уже большенство известных движков для блогов реализуют данную функцию.)))
А при чем здесь “большенство”? В статье речь только про WordPress.
а здесь такое уже давно http://adw0rd.ru/
Вроде сделал всё по инструкции, вот что отображаться стало, как будто проблемы с кодировкой. Что я напортачил?
� ������������, Ян Такушевич! �������� »
Попробуйте пересохранить comments.php в кодировке utf-8
Файл со скриптом сохраните в кодировке UTF-8.
Спасибо, сохранил файл со скриптом в UTF-8 и всё работает!
Пожалуйста.
Здравая идея.
Вобще странно почему такой подход не всегда используют. Мне он кажется крайне логичным, лежащим на поверхности. У меня реализация проще, но смысл тот же, просто значения формы заполняются из куков, если они есть.
Вопрос несколько не по теме: у кого-то из блоггеров видел, что когда приходишь на блог из поисковика, вверху страницы отображается специальный блок с сообщением. Не слышали ли вы, случаем, о таком и не знаете ли, каким плагином WP это сделано?
А то никак вспомнить не могу, где это видел. Сам уже написал себе похожий модуль, но любопытство всё равно мучает.
отлично! буду использовать.
недавно наваял с jQuery скриптик, реализующий ссылку «ответить на комментарий», добавляющий якорь-ссылку в поле комментария (предпочитаю этот способ древовидному изображению).
Здесь тоже из куков.
Плагин называется Search Unleashed.
Я до выход WP 2.7 тоже такой скрипт использовал =) А древовидные мне больше понравились.
Это понятно, я имел ввиду, что тут более симпатично это оформлено. )
Может немного не в тему, но связанно с комментариями.
Подскажи пожалуйста как сделать вывод порядкового номера комментариев.
Заранее спасибо
Я использую плагин Greg’s Threaded Comment Numbering.
Спасибо!! Это вроде то что я искал.
Прикольная весч, вижу стоит у вас на блоге, вскоре и себе такое поставим
ага, мне тоже нравится. Да и вообще, в целом блог очень качественный и интересный.
Dimox, я добавлю Ваш блог к себе в список друзей и стану вашим постоянным читателем )
Спасибо, очень рад =)
Отличный плагин даже не думал, о таком) обязательно поставлю у себя
У вас небольшая проблемка,. после оставления комментария, получается url следющего вида:
http://dimox.name/jquery-script-hi-comment-author/comment-page-1/#comment-6624
и текст поста виден только до тего “more”
Очень неудобно, а то отписался и хотел еще раз код просмотерть, а поста уже нет
Это не проблемка, а специально так сделано =)
Чтобы больше кликали?) Или для какой цели?
Уже поставил себе, Все отлично! Спасибо)
Чтобы укоротить страницу. Статьи бывают очень большие.
А как можно сделать так, чтобы для зарегистрированного комментатора не было возможности изменять свои e-mail и адрес сайта? Я в своем втором блоге заметил такую вещь, что как только кто-то регистрируется - буквально в этот же день или на следующий начинают появляться говнокомменты. Регистрируются на один e-mail.ru, а в комменты пишут другой поэтому сопоставить не получается (где-то читал, что WP НЕ фиксирует IP зарегистрированных пользователей). И как таких засранцев поймать никак не пойму.
Рецепты есть?
Данный вопрос выходит за рамки темы поста. Ответа на него не знаю. Вижу единственный разумный выход - запретить регистрацию на сайте.
Отказывается работать, Дим.
Блог заполняет вроде все поля, но при подключении скрипта ничего не меняется. Вроде сделал все по мануалу :(
У тебя стоят неправильные двойные кавычки в <div id=”author-data”>. Они должны быть прямые, а не косые. Может быть в этом дело.
Точно. Спасибо, Дим, ожило. Гениально! :)
PS: Строки я брал копипастом с твоего сайта, т.е. наклонные кавычки взялись из самой статьи.
Отлично. Пожалуйста. Я понял, что ты копипастом =)
здравствуй!
Что то у мну отказывается работать. Сделал все по мануалу, копипастом. Скобки на прямые исправил, все равно не работает. Не поможешь разобраться?
Не подключен jQuery.
То есть, не подключен, я код вписал, перед строчкой подключения скрипта:
Этот код почему-то на твоем блоге не работает, поэтому вместо него попробуй такой:
О, спасибо, заработало. Осталось с кодировкой разобраться…
Все, вопросы решены)))
Спс, классная вещь.
Интересно, пойду пробовать :)
И вообще, замечательные у вас на блоге плагины - уже часа 2 сижу и нарадоваться не могу - выбираю для себя :)
Вот это вещь!
Спасибо - как раз думал про такую штуку :)
Та же проблема.
Все по мануалу.
Кавычки исправил
В хедер пробовал и тот и другой скрипт вписывать
ничего не получатся
поможете?
Где можно посмотреть пример?
У меня почему то тоже не работает((( все варианты перепробовал…помогите, плизззз..
мой блог http://kino-kazan.ru
Если скрипт находится у вас в файле kino-kazan.ru/wp-content/themes/dynablue/privet.js, тогда причина в том, что этого файла не существует на сайте.
теперь вроде бы там лежит…..
посмотрите пажалста еще раз что на этот раз не так =)
Хоть файл сейчас и доступен, но что-то с ним все равно не так. Потому что, когда я сохраняю страницу к себе на компьютер (полностью с картинками и скриптами), то файл скрипта сохраняется с расширением .htm, и внутри него оказывается не скрипт, а хтмл-код страницы “404″ с вашего сайта.
понятно что ничего не понятно…
я просто скопировал js файл изменил его вставил ваш код со страницы и переименовал…..
понимаю что так наверн не делают…но я вообще в этом не шарю =(
можете мне выслать готовый файл js ? если вам не сложно =(
Дим, вы не могли бы мне помочь разобраться со всем этим? ооочень нужна ваша помощь или вообще хоть кого-нибудь кто в этом разбирается…у меня вообще много вопросов и боюсь что я со всем этим не справлюсь…. =(
и блог со временем заглохнет(
Очень понравилась идея скрипта, но дело в том что у меня сейчас не выполняется как раз второе условие, данные в форме не сохраняются. Возможно это как то исправить? Не хочется отключать плагины.
Сначала убедитесь, что в файле comments.php в коде полей формы присутствуют следующие записи:
2
3
<?php echo $comment_author_email; ?>
<?php echo $comment_author_url; ?>
Т.е. должно выглядеть примерно так:
2
3
<input type="text" name="email" id="email" value="<?php echo $comment_author_email; ?>" size="22" tabindex="2" />
<input type="text" name="url" id="url" value="<?php echo $comment_author_url; ?>" size="22" tabindex="3" />
Если они есть, значит причина в одном из плагинов.
Спасибо! Именно из-за этого и не работало.
Спасибо! Всё получилось, всё работает! Вы замечательный :)