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-файл):(function($) { $(function() { var author_val = $('#author').val(); if( author_val !='' && $('#email').val() !='' ) { $('#author-data').hide(); $('#author-data').before('<div id="welcome">С возвращением, <strong>'+author_val+'</strong>! <a href="#">Изменить »</a></div>') $('#welcome a').toggle( function() { $('#author-data').show(300); $(this).html('Свернуть »'); return false; }, function() { $('#author-data').hide(300); $(this).html('Изменить »'); return false; } ); } }) })(jQuery)
- Закиньте этот файл в папку с вашей темой.
- Теперь подключите скрипт, добавив следующий код в файл
header.php
перед тегом</head>
:<script type="text/javascript" src="<?php bloginfo('stylesheet_directory'); ?>/scripts.js"></script>
- Если в вашей теме не подключен фреймворк jQuery, то перед строкой из предыдущего пункта добавьте такую:
<?php wp_enqueue_script('jquery'); ?>
- Вот и все.
Теперь, я думаю, вашим посетителям-комментаторам будет приятно, если вы встретите их приветом и спрячете “лишние” поля из формы комментариев =)
Комментарии (88)
Димокс, дорогой!
Я чуть выше писала, что ты молодец, — так оно и есть, подтверждаю)
То есть с прежним шаблоном всё работало прекрасно, о чём я тут и сообщила.
Теперь я перешла на другой шаб, на нём скрипт работать не хочет ни в какую. Перепробовала всё, что ты предлагал другим в комментариях, — не помогает :(
Может, дело в различных кодах на том и этом шаблоне. На старом input выглядел так →
На новом же шаблоне каждый input обрамлён дивами по такому принципу →
Я заключила в →
<div id=”author-data”></div>
все три дива: перед самым первым
<div id=”author-data”>
(кавычки правила), после самого последнего
</div>
ещё один
</div>
.
Наверное, это неправильно.. А как правильно?
Слушай, мне уже стыдно.. я тут у тебя пасусь и забрасываю вопросами.. а ты ж занятой человек!!
Прости..
То, что поменялся html-код, сути не меняет, причина не в этом. Отладчик указывает на ошибку в этом файле – /wp-content/themes/yoo_vanilla_wp/warp/js/search.js. Возможно, что в этом причина, я в этих ошибка не разбираюсь.
Спасибо за информационный ответ, дружище, — я хотя бы поняла, где порыться в поисках проблемы.
Исследования показали, что код →
конфликтует, во-первых, со скриптом для тултипов vtip.js, который подключен выше (при наличии твоего кода тултипы перестают показываться).
И, во-вторых, при наличии твоего кода перестаёт работать поиск по блогу так, как он задумывался авторами шаблона: при введении слова/фразы в строку поиска выпадает окошко с результатами, где юзеру предлагаются варианты на выбор (ну, как это организовано в любом и-нет поисковике).
Подумала, бог с ними, с тултипами, другие заюзаю. И с Поиском — ну, заюзаю поиск от Гугла, чёрт с ними, с красивостями. Поудаляла все другие скрипты для чистоты эксперимента, оставила только твой — не работает :(
Кроме того, я заметила, что шаблон вообще не сохраняет имени/мейла/урла при повторном посещении, как это должно быть на нормальных блогах :)
Что же делать-то.. обидно как!
Слава богу, без проблем работает другой твой мануал/скрипт: dimox.name/adding-comments-rules/
Вывод – отключить мой скрипт и не мучаться.
А что сделать, чтобы WordPress-блог выводил ранее введенные данные в форме комментирования??? Есть ли какие-то решения кроме Disqus Comment System?
Смотрите выше комментарий №51.
Спасибо за скрипт и за отличный сайт.
Пишу комментарий, чтобы увидеть как это работает… иначе ведь не проверишь. Идея потрясная! А еще мне понравилось, что под окном записи комментария есть “правила комментирвания” есть такой плагин или это тоже собственное ноу-хау?
Спасибо!
К сожалению, в данный момент на блоге это не работает из скрипта кэширования. А на счет правил комментирования – это не плагин.
Почему “не работает”? Я вижу “С возвращением, Allpa!”, значит, работает?
Точно, я уже и сам забыл, что делал одну штуку, чтобы запоминалка работала. Так что да, с этим все в порядке. Поэтому забираю обратно свои слова из предыдущего моего коммента =)
Большое спасибо:)
Димокс, ай нид ё хелп :)
В очередной раз переползаю на новый шаб, на котором не работало сохранение кукисов (если ты помнишь, я тут тебя уже бомбирдировала вопросами на эту тему). Проблема с кукисами была решена подстановкой в файл comments.php строчек →
Потом я взялась прикручивать “Привет, автор!”, потому как до решения вопроса с кукисами скрипт не работал, есссно. Всё прикрутилось, но работает странно: любой автор приветствуется как undefined.
То есть кто бы ни отправлял камент, строчка приветствия всегда одна →
Я совершенно растерялась.. о.О
Ты не знаешь, случаем, что это, почему и где подправить, если можно вообще подправить?
Спасибо!
Димокс, я как всегда — поспешила с вопросом :(
А потом взяла да и тупо скопировала кусок кода →
<div id="author-data">... и тут поля для имени, мейла и урла ...</div>
из оттуда, где он у меня работал, туда, где он у меня не работал :)
И всё получилось!
Прошу извинить за панику, мне стыдно.
Но чисто теоретически.. просто ради интересу: почему же выскакивал undefined, который, как я почитала, выскакивает, когда скрипт не могёт, в данном случае, идентифицировать комментатора.
Тут, небось, проблема в коде шаблона: скрипт и шаблон просто не поняли друг друга :)
Вот вы уже сами и ответили на свой вопрос.
Хочется проверить, придется комментировать)
Спасибо за скрипт и разъяснение!
Сума сойти! У меня сразу заработало ! :) Спасибо, Dimox! За все твои велосипеды с которыми делишься :)))
А у меня не заработал :( Я как раз сейчас украшаю комментарии, попутно описывая это в подробностях, и попробовал подключить скрипт. Но страница вываливается с ошибкой. Правда, у меня гораздо сложнее ввод имени, е-мэйла и сайта, и на сколько я понимаю, мой контейнер описывается следующим кодом (это единственное похожее на
что я нашел в comment-template.php, т.к. в файле темы comments.php даже близко похожего ничего нет ):
Пытался задивить, прописывал в header… Не хочет. Обидно. Идея очень неплохая.
Да, у вас код совершенной другой, так что, похоже, не получится сделать.
Спасибо!
Интересная фишка, буду пробовать осуществить у себя на блоге
Здравствуйте!
Недавно захотела сделать ссылку в тексте, которая бы вела сразу к форме комментирования. Но хотелось бы, чтобы это было плавно. Но к сожалению не получалось. Попробовала убрать Ваш скрипт “С возвращением, автор!”, всё заработало, вернула – всё то-же, не работает. С чем это может быть связано и можно ли их как-то “подружить”, чтобы работало и то и другое? Скрипт плавного перехода к форме комментирования такой:
Если это не слишком сложно…
Спасибо!
Проверил с этим кодом – у меня работает.
И правда – работает…???? Что это я? Ну бывает – праздники и всё такое ))) Спасибо, за быстрый ответ. Непонятно, в чем была проблема…
Великолепно, как раз ищу такие маленькие фишки! Спасибо. Жаль подключение нудное, другие плагины только копируешь и активизируешь, а тут еще делать что-то нужно:)) Но сама идея мне очень понравилась.
Может, сделаете из этого плагин?:)
Нет смысла, процесс установки от этого никак не поменяется.
Спасибо за скрипт- заработал сразу! Я ещё добавил к приветственной надписи прикольную картинку.
Подскажите, как сделать, чтобы скрипт заработал (на другом блоге) если форма комментирования выводится через файл comments_template вордпресса, а не через comments.php шаблона?
Не знаю, я всегда вывожу через comments.php.
У меня почему то ссылка “изменить” не появляется
Я его у себя реализовал с помощью такого кода
Может что то неправильно?
Огромное спасибо! Все очень доступно и понятно расписано, да и сам скрипт классный.
Я был приятно удивлен, когда попытался установить скрипт у себя и все вышло с первого раза :)