jQuery-скрипт для WordPress «Привет, комментатор!»

Написал небольшой jQuery-скриптик, который призван несколько повысить удобство комментирования на WordPress-блоге. Как работает скрипт Все очень просто. Он проверяет, заполнены ли обязательные поля Имя/E-mail, и выполняет следующее: Если посетитель блога ранее оставлял комментарий, то при следующем комментировании его встречает надпись: «С возвращением, %Имя ...

Комментарии (88)
  1. 1
    @

    Дим, вы не могли бы мне помочь разобраться со всем этим? ооочень нужна ваша помощь или вообще хоть кого-нибудь кто в этом разбирается…у меня вообще много вопросов и боюсь что я со всем этим не справлюсь…. =(
    и блог со временем заглохнет(

  2. 2

    Очень понравилась идея скрипта, но дело в том что у меня сейчас не выполняется как раз второе условие, данные в форме не сохраняются. Возможно это как то исправить? Не хочется отключать плагины.

  3. 5

    Спасибо! Всё получилось, всё работает! Вы замечательный :)

  4. 6
    @

    Блин, мне нельзя заходить на ваш блог. Столько интересных «примочек», аж глаза разбегаются, так и хочется все поустанавливать… А сайт то грузится от них все дольше… :(
    По поводу скрипта, насколько я понял первая строка отвечает за проверку подключения библиотеки и если все ОК работает дальше. Но проблема в том что тогда придется j пихать и в остальные скрипты, иначе они работать не будут, а если на сайте скажем 20 отдельных скриптов+те что работают в плагинах. Так ли это необходимо??
    Сам скрипт работает отлично (после удаления первой строки и всех букофок j), так что большое вам за него спасибо. =)

  5. 7
    Rezax07

    Вот и проверю заодно)

  6. 8

    Димокс, дорогой!
    Я чуть выше писала, что ты молодец, — так оно и есть, подтверждаю)
    То есть с прежним шаблоном всё работало прекрасно, о чём я тут и сообщила.
    Теперь я перешла на другой шаб, на нём скрипт работать не хочет ни в какую. Перепробовала всё, что ты предлагал другим в комментариях, — не помогает :(
    Может, дело в различных кодах на том и этом шаблоне. На старом input выглядел так →

    <p>
    <input type="text" name="author" id="author" value="<?php echo $comment_author; ?>" size="22" tabindex="1" <?php if ($req) echo "aria-required='true'"; ?> />
    <label for="author"><small><?php _e('Name <span style="color: red">*</span>','MyProduct') ?>
    <?php if ($req) _e('','MyProduct'); ?>
    </small></label>
    </p>
    ...
    и так далее
    

    На новом же шаблоне каждый input обрамлён дивами по такому принципу →

    <div class="author <?php if ($req) echo "required"; ?>">
    <input type="text" name="author" id="author" value="<?php echo esc_attr($comment_author); ?>" size="22" tabindex="1" <?php if ($req) echo "aria-required='true'"; ?> />
    <label for="author"><?php _e('Имя', 'warp'); ?> <?php if ($req) echo "*"; ?></label>
    </div>
    ...
    Дальше другие дивы: с email и url

    Я заключила в →

    <div id=”author-data”></div>

    все три дива: перед самым первым

    <div id=”author-data”>

    (кавычки правила), после самого последнего

    </div>

    ещё один

    </div>

    .
    Наверное, это неправильно.. А как правильно?

    Слушай, мне уже стыдно.. я тут у тебя пасусь и забрасываю вопросами.. а ты ж занятой человек!!
    Прости..

    • 9

      То, что поменялся html-код, сути не меняет, причина не в этом. Отладчик указывает на ошибку в этом файле — /wp-content/themes/yoo_vanilla_wp/warp/js/search.js. Возможно, что в этом причина, я в этих ошибка не разбираюсь.

      • 10

        Спасибо за информационный ответ, дружище, — я хотя бы поняла, где порыться в поисках проблемы.
        Исследования показали, что код →

        <script type="text/javascript" src="<?php bloginfo('stylesheet_directory'); ?>/scripts.js"></script>

        конфликтует, во-первых, со скриптом для тултипов vtip.js, который подключен выше (при наличии твоего кода тултипы перестают показываться).
        И, во-вторых, при наличии твоего кода перестаёт работать поиск по блогу так, как он задумывался авторами шаблона: при введении слова/фразы в строку поиска выпадает окошко с результатами, где юзеру предлагаются варианты на выбор (ну, как это организовано в любом и-нет поисковике).

        Подумала, бог с ними, с тултипами, другие заюзаю. И с Поиском — ну, заюзаю поиск от Гугла, чёрт с ними, с красивостями. Поудаляла все другие скрипты для чистоты эксперимента, оставила только твой — не работает :(

        Кроме того, я заметила, что шаблон вообще не сохраняет имени/мейла/урла при повторном посещении, как это должно быть на нормальных блогах :)

        Что же делать-то.. обидно как!

        Слава богу, без проблем работает другой твой мануал/скрипт: dimox.name/adding-comments-rules/

  7. 12
    Виктория
    @

    А что сделать, чтобы WordPress-блог выводил ранее введенные данные в форме комментирования??? Есть ли какие-то решения кроме Disqus Comment System?

  8. 14
    XA3AP

    Спасибо за скрипт и за отличный сайт.

  9. 15
    Руслан

    Пишу комментарий, чтобы увидеть как это работает… иначе ведь не проверишь. Идея потрясная! А еще мне понравилось, что под окном записи комментария есть «правила комментирвания» есть такой плагин или это тоже собственное ноу-хау?
    Спасибо!

  10. 19
    Scorpione

    Большое спасибо:)

  11. 20

    Димокс, ай нид ё хелп :)
    В очередной раз переползаю на новый шаб, на котором не работало сохранение кукисов (если ты помнишь, я тут тебя уже бомбирдировала вопросами на эту тему). Проблема с кукисами была решена подстановкой в файл comments.php строчек →

    <?php 
     $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! Войти под другим именем »

    Я совершенно растерялась.. о.О
    Ты не знаешь, случаем, что это, почему и где подправить, если можно вообще подправить?

    Спасибо!

  12. 21

    Димокс, я как всегда — поспешила с вопросом :(
    А потом взяла да и тупо скопировала кусок кода →

    <div id="author-data">... и тут поля для имени, мейла и урла ...</div>

    из оттуда, где он у меня работал, туда, где он у меня не работал :)
    И всё получилось!
    Прошу извинить за панику, мне стыдно.
    Но чисто теоретически.. просто ради интересу: почему же выскакивал undefined, который, как я почитала, выскакивает, когда скрипт не могёт, в данном случае, идентифицировать комментатора.
    Тут, небось, проблема в коде шаблона: скрипт и шаблон просто не поняли друг друга :)

  13. 23

    Хочется проверить, придется комментировать)

  14. 24
    Soohar

    Спасибо за скрипт и разъяснение!

  15. 25

    Сума сойти! У меня сразу заработало ! :) Спасибо, Dimox! За все твои велосипеды с которыми делишься :)))

  16. 26
    @

    А у меня не заработал :( Я как раз сейчас украшаю комментарии, попутно описывая это в подробностях, и попробовал подключить скрипт. Но страница вываливается с ошибкой. Правда, у меня гораздо сложнее ввод имени, е-мэйла и сайта, и на сколько я понимаю, мой контейнер описывается следующим кодом (это единственное похожее на

    <input />

    что я нашел в comment-template.php, т.к. в файле темы comments.php даже близко похожего ничего нет ):

    	$fields = array(
    		'author' => '<p class="comment-form-author">' . '<label for="author">' . __( 'Name' ) . '</label> ' . ( $req ? '<span class="required">*</span>' : '' ) .
    		 '<input id="author" name="author" type="text" value="' . esc_attr( $commenter['comment_author'] ) . '" size="30"' . $aria_req . ' /></p>',
    		'email' => '<p class="comment-form-email"><label for="email">' . __( 'Email' ) . '</label> ' . ( $req ? '<span class="required">*</span>' : '' ) .
    		 '<input id="email" name="email" type="text" value="' . esc_attr( $commenter['comment_author_email'] ) . '" size="30"' . $aria_req . ' /></p>',
    		'url' => '<p class="comment-form-url"><label for="url">' . __( 'Website' ) . '</label>' .
    		 '<input id="url" name="url" type="text" value="' . esc_attr( $commenter['comment_author_url'] ) . '" size="30" /></p>',
    	);
    

    Пытался задивить, прописывал в header… Не хочет. Обидно. Идея очень неплохая.

  17. 29
    Александр

    Интересная фишка, буду пробовать осуществить у себя на блоге

  18. 30

    Здравствуйте!
    Недавно захотела сделать ссылку в тексте, которая бы вела сразу к форме комментирования. Но хотелось бы, чтобы это было плавно. Но к сожалению не получалось. Попробовала убрать Ваш скрипт «С возвращением, автор!», всё заработало, вернула — всё то-же, не работает. С чем это может быть связано и можно ли их как-то «подружить», чтобы работало и то и другое? Скрипт плавного перехода к форме комментирования такой:

    $(document).ready(function() {
     $("a.topLink").click(function() {
     $("html, body").animate({
     scrollTop: $($(this).attr("href")).offset().top + "px"
     }, {
     duration: 500,
     easing: "swing"
     });
     return false;
     });
    });

    Если это не слишком сложно…
    Спасибо!

  19. 33
    Alex

    Великолепно, как раз ищу такие маленькие фишки! Спасибо. Жаль подключение нудное, другие плагины только копируешь и активизируешь, а тут еще делать что-то нужно:)) Но сама идея мне очень понравилась.

Ваш комментарий