Вконтакте
Телефон для заказов: +7 (910) 487 81 94
Подписка на RSS

Анонимные комментарии в WordPress а-ля blogger.com

Недавно я работал над одним интересным сайтом на WordPress, хозяин которого попросил сделать достаточно оригинальную штуку: анонимные комментаторы должны иметь возможность ввести только текст комментария, а имя и адрес сайта доступны лишь зарегистрированным пользователям.

Делаем очень анонимные комментарии на WordPress

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

На самом деле достаточно сделать всего пару изменений в одном из файлов шаблона. Откроем comments.php и найдём примерно следующее (примерно, потому что в разных темах по-разному, мой вариант взят из темы Classic):

<p><input type="text" name="author" id="author" value="<?php echo esc_attr($comment_author); ?>" size="22" tabindex="1" />
<label for="author"><small><?php _e('Name'); ?> <?php if ($req) _e('(required)'); ?></small></label></p>

Удалим отсюда теги label и всё, что между ними, уберём оба тега p, значение value заменим на Анонимный комментарий, а значение type — на hidden.

В результате получим следующий код:

<input type="hidden" name="author" id="author" value="Анонимный комментарий" size="22" tabindex="1" />

Сделаем похожие изменения в поле для ввода E-mail, заменим

<p><input type="text" name="email" id="email" value="<?php echo esc_attr($comment_author_email); ?>" size="22" tabindex="2" />
<label for="email"><small><?php _e('Mail (will not be published)');?> <?php if ($req) _e('(required)'); ?></small></label></p>

на этот код:

<input type="hidden" name="email" id="email" value="noreplay@site.com" size="22" tabindex="2" />

Поле для ввода адреса сайта можем смело удалить, вот каким оно было:

<p><input type="text" name="url" id="url" value="<?php echo esc_attr($comment_author_url); ?>" size="22" tabindex="3" />
<label for="url"><small><?php _e('Website'); ?></small></label></p>

Проверяем результат.

Анонимные комментарии в WordPress по типу blogger.com

Вот такое нехитрое решение оригинальной проблемы.

Для того, чтобы задизайнить в стиле сайта страницы регистрации, авторизации, настройки профиля и напоминания пароля, я использовал плагин Theme my Login, о котором писал в уроке «Подключение темы WordPress к страницам профиля, регистрации и авторизации» (с тех пор настройки плагина немножко поменялись, имейте в виду).

Желаю вам всего самого оригинального.
Seogad

P.S. Скоро подходит к концу мой марафон. Будем отчитываться =)

Понравилась статья?

Создание блога под ключ всего за 999 рублей!

«Анонимные комментарии в WordPress а-ля blogger.com» — комментарии (13)

  • А зачем это вообще нужно? Не легче ли поставить модерацию комментариев?

  • @Денис, возможно беспощадный анонимус будет выдавать жесточайшую критику

  • Было бы неплохо тогда, что бы ip анонимного комментатора записывалось в бд и потом можно было блочить если оборзеют )

  • э-э-э! :) а развернутый пост по результатам марафона будет?? отрицательный результат — это тоже результат! тем более что работы ведутся на сайтиками правильно же?
    Мы хотим знать, почему все так получилось как получилось, на что были сделаны ошибочные ставки и еще много другой полезной информации

  • @Uran, всё будет в понедельник-вторник =) на данный момент результат не результат, но марафон будет продолжен с плюшками на его исходе для читателей блога =)

  • Да, в вордпресс подобная фича действительно довольно просто делается.

  • Ну, а тогда зачем модерация сообщения для анонимных пользователей?

  • В общем-то, алгоритм действительно несложен, но стоит ли оно того? Анон же может и обидеть, и написать чего-нить нехорошего. Придётся так или иначе модерировать, банить и прочие непопулярные меры принимать, ещё и некоторые вручную

  • За способ — молодец. Но вот область применения? Честно не знаю.

  • странное применение, а где же проверка на то, что это зарегистрированный юзер?
    http://codex.wordpress.org/Function_Reference/is_user_logged_in
    зарегистрированному что будет выдаваться то? имхо надо

  • порезал коммент
    php
    if ( is_user_logged_in() ) {
    тут старый код который был в шаблоне
    } else {
    тут твой, с полями, которые ты сделал скрытыми(автор и емэйл)
    };

  • @Желнов Александр, зарегистрированному будет выдаваться то, что нужно вставить вместо фразы «тут старый код который был в шаблоне» — то есть буквально вставить старую форму добавления комментария, её он и получит в результате.

  • @Seogad, я сам уже запутался…. :-)
    вообще сама идея автоматом добавлять комментарии без премодерации это жуть, там же заспамят все что можно…. ты пишешь что удалять поле урл из формы, а ведь боты автоматом постят поле урл — есть оно в коде или нет… бот определил что вордпресс, и все постит…. там надо убирать вывод урл, если нет юзера в базе т.е. для не зарегистрированных не выводить поле урл….
    а тут надо смотреть несколько функций wp_list_comments
    http://codex.wordpress.org/Function_Reference/wp_list_comments использовать ее с параметрами wp_list_comments(‘type=comment&callback=mytheme_comment’)
    в functions.php добавить функцию mytheme_comment
    т.е. переписать ее под себя и возможно даже какие-то фильтры add_filter применять т.к. править функции самого движка такие как comment_author_link не стоит….
    т.е. не все так просто….
    или же очень жестко бороться со спамом используя и рекапчу и проверку на куки….
    короче я такое не делал т.к. не требовалось никогда….
    обычно просто пользователь постит и урл, но если спам то в спам и все…

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

Поля отмеченные * нужно в любом случае заполнить. Пожалуйста, воспринимайте буквально текст «Блог или профиль в соц. сети», не оставляйте ссылки на интернет-магазины, коммерческие сайты и страницы, на которых нельзя познакомиться с вами и вашей деятельностью - такое творчество будет удалено. Это dofollow блог.