Меню

Форма комментирования, как в Wordpress - это реально

Создание сайтов2907

Здравствуйте, дорогие читатели моего блога. У меня сейчас очень хорошее настроение, потому что я, наконец-то, изменил форму комментирования: сделал её, как в Wordpress. В этой статье я покажу, как сделать также на своём блоге.

Предыстория

Недавно я настраивал антиспам одному хорошему человеку на Wordpress. Стал искать метод в интернете, который и раньше знал, но уже забыл, так как WP давно не использовал. Меня заинтересовало в коде то, что первое текстовое поле скрывается при помощи style="display: none;", но тогда я думал, что хоть оно скрывается внешне, если использовать программу экранного доступа, оно будет видно, но оказалось всё иначе: первое поле для текста комментария скрывается не только внешне, но и вообще не выводится в браузере, что меня очень порадовало.

Сразу пришла идея скрыть поле пароля таким-же способом.

Когда появилось свободное время, я начал заниматься упрощением формы добавления комментария.

Делаем правки

Заходим в свой шаблон и ищем в папке "type" файл page-comment-form.php. Если его нет, Скачайте отсюда

Изначальное содержимое файла page-comment-form.php

Открываем его в notepad++ или другом адекватном редакторе (Не в блокноте) и Находим строки:

<label for="comments_password"><?= tf('Пароль') ?></label>
<span><input type="password" name="comments_password" class="comments_password" id="comments_password" onfocus="document.getElementById('comments_reg_2').checked = 'checked';"></span>

И заменяем их на следующее:

<label for="comments_password" style="display: none;"><?= tf('Пароль') ?></label>
<span style="display: none;"><input type="password" name="comments_password" class="comments_password" id="comments_password" onfocus="document.getElementById('comments_reg_2').checked = 'checked';"></span>

То есть добавляем style="display: none;".

Далее ищем кнопку "Использовать e-mail как пароль":

<span class="fbutton"><button type="button" class="comments_copy" title="<?= tf('Использовать email как пароль') ?>" onclick="document.getElementById('comments_reg_2').checked = 'checked'; document.getElementById('comments_password').value=document.getElementById('comments_email').value; ">></button></span>

И вырезаем onclick="document.getElementById('comments_reg_2').checked = 'checked'; document.getElementById('comments_password').value=document.getElementById('comments_email').value; ".

Далее находим эту строку:

<button name="comments_submit" type="submit" class="button-blue" onclick="document.getElementById('comments_reg_2').checked = 'checked'; document.getElementById('comments_password').value=document.getElementById('comments_email').value; "><?= tf('Отправить') ?></button>

И вставляем этот код перед "":

<button name="comments_submit" type="submit" class="button-blue" onclick="document.getElementById('comments_reg_2').checked = 'checked'; document.getElementById('comments_password').value=document.getElementById('comments_email').value; "><?= tf('Отправить') ?></button>

После этого можно удалить строчку "Использовать e-mail как пароль". Всё: ваша форма оочень лёгкая!

И ещё: если вас не устраивает то, что перед полем ввода текста комментария нет описания, вставьте строку перед < textarea>:

<label for="comments_content" class="ffirst ftitle"><?= tf('Текст комментария') ?></label>

Она должна находиться перед строкой:

<textarea name="comments_content" id="comments_content" rows="10" class="form-control"></textarea>

Новый файл page-comment-form.php

После этого заходим в админку, в раздел "Основные", там во вкладку "Комментирование" и снимаем флажок " Разрешить комментарии от анонимов".

Админ-панель/Основные/комментирование

Если вам не хочется вручную вносить изменения в файл, скачайте и распакуйте этот архив.

Вариант с кнопкой "Я не робот"

В этом случае мы не перемещаем код, а заменяем "Использовать email как пароль" на слова: "Я не спамер" или на что-нибудь такое: "Хватит меня спамером называть". В общем, тут надо пофантазировать, но надо помнить, что надо побудить посетителя обязательно нажать на кнопку (Иначе комментарий не опубликуется).

В итоге получится такая строка:

<span class="fbutton"><button type="button" class="comments_copy" title="<?= tf('Я не спамер (Нажмите на эту кнопку обязательно)') ?>" onclick="document.getElementById('comments_reg_2').checked = 'checked'; document.getElementById('comments_password').value=document.getElementById('comments_email').value; ">Я не спамер (Нажать обязательно)</button></span>

Второй раз название кнопки вставлять обязательно, так как иначе никто её не заметит.

Чтобы показать посетителю, что эта кнопка обозначает, находим строчку:

<span class="fempty"></span>

И перед закрывающим тегом вставляем "Антиспам проверка:".

<span class="fempty">Антиспам проверка:</span>

Вариант файла page-comment-form.php с кнопкой антиспама

P. S.

После того, как проделали действия, описанные в этой статье, подправьте css стили (Я, как закажу правку, напишу здесь, что было сделано).

Буду благодарен за комментарии и лайки.

Текущая оценка Общий бал: 5 Проголосовало Проголосовало: 1

help_share

Данная публикация была вам полезна?

Помоги автору сайта, расскажи друзьям...

Комментариев: 13
  •  Константин Белан 27 марта 2015 в 22:20:24
    img

    Молодец, Денис. Очень интересное решение придумал.

    P.S. Сейчас проверю как это работает.

    •  Денис Скрипник | 27 марта 2015 в 22:55:16
      img

      Благодарю за оценку.

  •  Левашов Игорь 28 марта 2015 в 00:19:40
    img

    Конечно, такая форма комментирования намного удобнее. Теперь жди наплыва комментов)

    •  Денис Скрипник | 28 марта 2015 в 00:41:09
      img

      Благодарю за оценку.

      Теперь жди наплыва комментов)

      Буду очень им рад.

  •  Андрей 29 марта 2015 в 15:57:41
    img

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

    •  Денис Скрипник | 29 марта 2015 в 18:10:02
      img

      Здравствуйте. Я тоже также думал, но потом надоело ждать, и реализовал. grin

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

      Хочу ещё вывести список выбора варианта подписки в форме, а также сделать автозаполнение полей формы, дабы после первого ввода не приходилось больше ничего вводить даже после окончания сессии.

      •  Андрей 29 марта 2015 в 20:29:30
        img

        Правильный ход мыслей)) Надобно, чтоб поучаствовал кто-то любящий php кодирование

        •  Денис Скрипник | 29 марта 2015 в 20:46:49
          img

          Да. А возможно будет так: ждал я ждал этого, а потом начал сам разбираться во всём этом, как было с нагромождениями. grin

  •  Андрей 11 апреля 2015 в 17:00:21
    img

    Ошибка какая-то висит..

    A PHP Error was encountered

    Severity: Notice

    Message: Undefined variable: comments_name

    Filename: type_foreach/page-comments-tree.php

    Line Number: 72

    •  Денис Скрипник | 11 апреля 2015 в 17:10:58
      img

      Это я пытаюсь сделать следующее:

      1. Вставить сайт вместо ссылки на страницу пользователя.

      2. Поменять ссылки на span, дабы скрыть их от поисковиков легальным методом.

      •  Андрей 11 апреля 2015 в 17:16:30
        img

        На самом деле, поисковикам пофиг и на rel="nofollow", как и сайтам рейтингов, считающим все ссылки вподряд)) Я в итоге убрал всё и поставил открытые. Это лишь привлекает, а поисковики сейчас смотрят на движуху на сайте.

        rel="nofollow" вроде как учитывают только продающие ссылки биржи.

        •  Денис Скрипник | 11 апреля 2015 в 21:12:50
          img

          Вот статья про тот метод, который я хочу применить: http://isif-life.ru/web/noindex-i-nofollow-chto-eto-takoe-i-kak-eshhe-zakryt-ssylku-ot-indeksacii.html

  •  Денис Скрипник | 13 апреля 2015 в 17:41:16
    img

    Сделал всё то, что хотел, а также модернизировал плагин rewrite_links: избавился от внешних ссылок.

    Хотя возможно плагин уберу - не знаю. Надо сначала изучить статьи и проверить ссылки в них.

Буду благодарен за каждый оставленный вами комментарий

Добавить Комментарий

grin LOL cheese smile wink smirk rolleyes confused surprised big surprise tongue laugh tongue rolleye tongue wink raspberry blank stare long face ohh grrr gulp oh oh downer red face sick shut eye hmmm mad angry zipper kiss shock cool smile cool smirk cool grin cool hmm cool mad cool cheese vampire snake excaim question

Похожие публикации