Главная WordPress

WordPress трюк: определяем подписавшихся на комментарии

Уже давненько я с интересом посматривал на появляющуюся на некоторых блогах около имен комментаторов иконку в виде письма со стрелкой, альтернативный текст которой гласит: «Subscribed to comments via email». Это означает, что данный комментатор подписался на получение уведомлений на свою электронную почту о появлении новых комментариев к текущему посту.

Методом поиска я быстро выяснил, что такая фишка «припаяна» к плагину Brian’s Threaded Comments. Но, как оказалась, чтобы сделать подобную вещь, вовсе не обязательно наличие данного плагина, т.к. функция принадлежит плагину Subscribe To Comments, с помощью которого, собственно, комментаторы и подписываются. Соответственно, чтобы у вас сие действо работало, необходимо, чтобы этот плагин был установлен.

Штука довольно интересная, и в ней я вижу пару полезностей:

  • Во-первых, такая иконка даст понять комментирующему, увидит ли ваш комментарий автор одного из предыдущих комментариев, которому вы хотите что-либо сказать. Например, я часто наблюдаю такую ситуацию. На мой новый пост добавляется комментарий, я отвечаю на него, а позже оказывается, что адресат его и не увидел вовсе, поскольку не был подписан. Т. е. как будто я писал в никуда, и, возможно, зря тратил время.
  • Во-вторых, это и еще один способ выявления возможного спамера. Это можно определить следующим образом. Допустим, новый комментатор задал какой-то вопрос касательно темы поста и не подписался на комментарии. Если он еще и под своим ником оставил ссылку на сомнительный сайт, большая вероятность, что это спамер.

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

<?php
	if (function_exists('comment_subscription_status')) {
		if (comment_subscription_status()) {
			echo 'картинка или текст, говорящие о подписке';
		}
	}
?>

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

Берите на заметку ;)

* * *

Компания «Agima», входящая в TOP100 ведущих веб-студий России, предлагает создание корпоративного сайта, которое увеличит сферу узнаваемости фирмы и, как следствие, количество клиентов и прибыль.

Комментарии (49)

  1. СЕО, посмотрите в самый верх сайдбара, блок подписки.

  2. вот конкретно этот код у меня не работает…
    if (comment_subscription_status ())
    здесь точно ничего не нужно менять?

  3. Ничего не нужно менять. Должно работать, если установлен плагин подписки. У меня же работает…

  4. Тоже ниче не менял, все работает.

  5. мда :) извините, я просто не удосужился посмотреть на ДЕЙСТВИТЕЛЬНО подписанных пользователей)

  6. Во! слушай, а не встерчал такую фичу как высылка лишь ответа на коммент.

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

    И еще, не сталкивался с таким глюком как невозможность писать в тред если ты не являешься вошедшим на сайт, а идентишься через ОпенИД. Т. е. коммент добавляется, но не в тред, а ниже. ПРиходится либо регаться и входить либо через мыло/имя

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

  8. Долго искал этот плагин, спасибо за разъяснение, наверное одни из лучших плагинов для комментариев.

  9. Сделал как написано, все заработало :) Теперь не надо при цитировании коммента каждый раз «ходить» смотреть подписан ли цитируемый автор на комменты. Удобно и время экономит :)

  10. Ура! Ура! У меня тоже заработало! :-) Целых 3 часа провозился…

  11. Что касаемо полезности, поддержу только только в том что «знать кому отвечать на комментарий», и удивлён почему на данном блоге эта фитча не стоит?

  12. Dimox, приветствую.
    Подскажи плз причины не работоспособности Subscribed to comments, код в comments. php подправил типа — безрезультатно. люди подписываясь на коменты и нифига не получают.
    Благодарю.

  13. Аlex, проблема может быть в том, что IP-адрес сервера, с которого отправляются письма, находится в каких-либо черных списках, поэтому почтовые сервисы их фильтруют, как спам.

  14. Спасибо за оперативность.
    Разобрался уже — причиной была собственная невнимательность.

  15. Поставил у себя на блоге. Спасибо!

  16. Вот это то, что я искал. Внедрил у себя :)

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

    <?php wp_list_comments (array ('type'=>comment,'callback'=>mytheme_comment,'avatar_size'=>50, 'reply_text'=>'Reply')); ?>

    безрезультатно, увы… :((
    Простите, что я с вопросом… но нет ли у Вас каких-нить по этому поводу советов?

  18. Автор, поделись своим плагином комментариев или подскажи куда рыть, что бы такой себе поставить. Пожалуйста!
    спасибо…

      • Что конкретно интересует?

        Если быть честным — то вся система комментариев в твоем блоге.
        в частности:
        1. код файла стилей твоей темы
        2. код файла comments. php (код loop вывода комментариев)

        P. S. Просто у меня тема старая и я не могу привинтить встроенную уже поддержку древовидных комментариев, вернее уже прикурутил, только вот с дизайном не могу осилить до конца форму html вывода комментариев. Стал на ровном месте, не знаю куда ползти. Лезть в шаблон общих комментариев и править функцию php wp_list_comments ().
        Запарился я. Обрыл весь инет, даже гугл уже устал. Ни где нет нормального описания, как прикрутить шаблон старой темы к WP 2.8

  19. А для тех блогов, у которых стоит Disqus этот скрипт не подойдет?