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

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

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

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

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

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

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

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

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

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

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

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

на этот код:

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

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

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

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

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

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

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

Желаю вам всего самого оригинального.
Артём Савельев

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

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

Статьи по теме:

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

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

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

    Ответить

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

    Ответить

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

    Ответить

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

    Мы хотим знать, почему все так получилось как получилось, на что были сделаны ошибочные ставки и еще много другой полезной информации

    Ответить

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

    Ответить

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

    Ответить

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

    Ответить

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

    Ответить

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

    Ответить

  • странное применение, а где же проверка на то, что это зарегистрированный юзер?

    codex.wordpress.org/Funct...s_user_logged_in

    зарегистрированному что будет выдаваться то? имхо надо

    Ответить

  • порезал коммент

    php

    if ( is_user_logged_in () ) {

    тут старый код который был в шаблоне

    } else {

    тут твой, с полями, которые ты сделал скрытыми(автор и емэйл)

    };

    Ответить

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

    Ответить

    @Артём Савельев, я сам уже запутался... :-)

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

    а тут надо смотреть несколько функций wp_list_comments

    codex.wordpress.org/Funct...wp_list_comments использовать ее с параметрами wp_list_comments ('type=comment&callback=mytheme_comment')

    в functions.php добавить функцию mytheme_comment

    т.е. переписать ее под себя и возможно даже какие-то фильтры add_filter применять т.к. править функции самого движка такие как comment_author_link не стоит...

    т.е. не все так просто...

    или же очень жестко бороться со спамом используя и рекапчу и проверку на куки...

    короче я такое не делал т.к. не требовалось никогда...

    обычно просто пользователь постит и урл, но если спам то в спам и все...

    Ответить

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

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