Настраиваем комментарии в WordPress. WordPress комментарии – полное оформление внешнего вида Размещенные отправить комментарий comment

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

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

Действительно, для чего изобретать велосипед и писать кучу кода, который в будущем еще придется поддерживать, фиксить и т.д., если есть куча готовых решений от сторонних сервисов (речь идет о социальных сетях + disqus )?

Но прежде чем перейдем к непосредственно внедрению, давайте рассмотрим преимущества/недостатки использования готовых решений. (Если о чем забыл - пишите в комментах - расширим список)

Преимущества сторонних решений:

  • Простота в реализации.
  • Защищенность от спама "с коробки" (в своем решении пришлось бы это дополнительно реализовать, так что, теоретически, связано с предыдущим пунктом).
  • В меньшей степени подвержено ошибкам, багам и т.д., так как сторонние решения проверили миллионы пользователей (опять связано с первым: вы тоже можете написать все без багов, но уйдет дополнительное время на отладку).
  • Как правило, сервисы предоставляют готовую админку, статистику, уведомления для админов, иногда модерацию, несколько админов, премодерацию и т.д., на реализацию чего у веб-мастера, особенно начинающего, могут уйти месяцы, если не годы.
  • Пользователю не нужно регистрироваться, вводить свое имя и т. д. - предполагается, что у него уже есть аккаунт в популярной соцсети.
  • Скорее всего, выдержит большую нагрузку из-за того, что соц. платформы изначально рассчитаны на большие нагрузки.

Недостатки:

  • Скудное или полное отсутствие возможности изменить внешний вид блока с комментариями.
  • Индексация в поисковых системах.

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

Но довольно теории, перейдем к практике.

1. Простейший вариант - добавить комментарии с использованием какой-то выбранной соцсети.

Например, vk. Смотрим документацию . Копируем предоставленный код, и добавляем на странице (куски кода взяты с доки по ссылке, в будущем может поменяться, так что всегда копируйте с сайта с документацией. Здесь только возможный пример):

1) Добавляем в :

VK.init({apiId: 2951023, onlyWidgets: true});

2) Добавляем в том месте, где хотим видеть виджет комментариев (например, после заметки, если речь идет о блоге):

VK.Widgets.Comments("vk_comments", {redesign: 1, limit: 10, width: "665", attach: "*"});

2. Добавить виджеты из нескольких сервисов. Например, как на этом ресурсе. Переключаются табами:


Добавляем в разметку (для корректной работы должен быть подключен twitter bootstrap!) в месте, где нужно вывести виджет комментариев :

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

Этого можно избежать, реализовав ленивую инициализацию виджетов комментариев . Сначала код целиком, потом разъяснение:

(function(global, $) { "use strict"; $(function() { var $tabToggler, initComments, initialized; initialized = { "#vk-comments": false, "#disqus_thread": false }; initComments = function(type) { var discussUserName, disqus_config, pageUrl; if (initialized) { return; } pageUrl = "page_url"; switch (type) { case "#disqus_thread": // You need to set this params using your platform"s appropriate way discussUserName = "discussUserName"; disqus_config = function() { this.page.url = pageUrl; return this.page.identifier = "page_identifier"; }; (function() { var d, s; d = document; s = d.createElement("script"); s.src = "//" + discussUserName + ".disqus.com/embed.js"; s.setAttribute("data-timestamp", +new Date()); return (d.head || d.body).appendChild(s); })(); break; case "#vk-comments": VK.Widgets.Comments("vk-comments", { limit: 5, attach: "*", pageUrl: pageUrl }); break; default: return; } initialized = true; }; $tabToggler = $(".comments-wrapper a"); $tabToggler.on("shown.bs.tab", function(e) { initComments($(e.target).attr("href")); }); initComments($tabToggler.closest(".active").find("a").attr("href")); }); })(window, jQuery);

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

Для начала создаем маппинг типов виджетов комментариев , переменная initialized . Дальше, функция initComments(type) позволяет инициализировать виджет комментария , причем она ничего не делает, если он уже был инициализирован.

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

Готовый скрипт на и coffeescript на gist. Пример работы - внизу (примеры кода взяты с этого сайта)

Здравствуйте, друзья и гости блога! Сегодня расскажу при помощи PHP и MySQL. А также мы с вами поговорим о системах комментирования для сайта и выберем из предложенных мной лучшую для вашего сайта.

Вопрос первый : с помощью PHP и MySQL ?

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

id — это уникальный идентификатор.
page_id — в этом поле будет хранится идентификатор страницы сайта, на которой располагается данный комментарий.
name — это имя того комментатора, который оставил данный комментарий.
text_comment — соответственно это текст текущего комментария.

Следующим этапом, после создания таблицы для комментариев в базе данных, нам нужно внедрить специальный код для наших будущих комментариев на сайт. Этот код на сайте позволит нашим комментаторам добавить свои комментарии к нашим статьям. Вот этот код:

Ваше имя:

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

Это простая HTML форма комментариев для сайта. Вы ее располагаете на своем сайте в том месте, где это удобно для оставления комментария к посту — естественно под самим постом.

Последний шаг в создании формы комментариев для сайта на PHP и MySQL — Делаем вывод наших комментариев на странице сайта. Вот код для этого:

Вот и все! Наша простая форма комментариев ля сайта создана и может работать на сайте.

Но это конечно не для новичка, который не станет копаться со всеми этими кодами HTML, PHP и MySQL. Также не станет изучать, как создать базу данных. Ему нужно все сразу, быстро и без головной боли. Я прав? Конечно прав!

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

Системы комментариев для сайта. Какую выбрать?

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

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

Поэтому давайте рассмотрим как сделать комментарии на сайте и какую систему комментирования выбрать, как наиболее оптимальный вариант?

Вообще комментарии на сайтах выводятся многими способами. Это и специальные плагины для wordpress движков и комментарии от социальных сетей всевозможные, такие как например Вконтакте , Facebook , Disqus . Также есть независимые сервисы, которые предлагают свои системы комментариев для сайта, например .

Я сейчас вам приведу одну табличку, которая сразу расставит все на свои места и вопросов уже не возникнет по поводу выбора системы комментариев для сайта:

Здесь все четко и ясно видно какая система комментариев является лучшей и нескольких представленных, которые чаще всего используются вебмастерами на своих ресурсах. Думаю, что пояснения здесь излишни и выбор остается только за Вами!

Я для себя уже принял решение и установил систему комментариев для своего сайта от Cackle.

Кстати если Вы уже решились выбрать систему для своего сайта, то вот вам ссылка, которая дает 5% скидку на приобретение системы комментариев от Cackle!

А у меня пока все на сегодня! Всем удачи и благополучия! До новых встреч!

Здравствуйте!

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

Начну с того, что в каждом шаблоне (теме) WordPress есть файл comments.php , Полный путь к нему от корневого каталога: /wp-content/themes/папка_шаблона/comments.php

Именно comments.php отвечает в целом за блок комментариев в конкретной теме WordPress.

Что чаще всего содержится в comments.php:

– проверка защиты комментариев паролем

– проверка разрешены ли комментарии к статье

– проверка наличия комментариев и вывод соответствующего текста (“Комментариев нет …” или “Оставлено n комментариев”)

– вызов функции вывода комментариев – wp_list_comments()

– вывод навигации (пейджинации) при многостраничном размещении комментариев

– вывод формы для оставления комментариев к статье

Здесь понятно, что вы можете задавать свои классы или изменять свойства в style.css для уже существующих классов. Таким образом, вы можете изменить внешний вид формы для оставления комментариев и текстов до списка комментариев и после этого списка или формы. Но стили вывода непосредственно самих комментариев в comments.php изменить нельзя.

Когда я перечислял содержимое файла comments.php , то специально отметил подчеркиванием, что в comments.php происходит всего лишь вызов функции вывода комментариев wp_list_comments() , но не сам вывод. Т.е. в comments.php вы не найдете (по крайней мере, в последних версиях WordPress и при правильном подходе к разработке шаблонов): вывод имени автора сообщения и ссылки на его сайт, вывод аватарки автора, вывод даты и времени комментария, самого комментария и ссылки “ответить”.

Как же изменить стили в списке комментариев?

Для начала нужно выяснить используется ли в вашем шаблоне пользовательская функция для вывода комментариев.

Вызов функции wp_list_comments() возможен без колбэка (callback – функция обратного вызова) и с колбэком.

1. Вызов wp_list_comments без колбэка:

Т.е. в параметрах функции (то что в скобочках, после названия) нигде не фигурирует параметр с названием ‘callback’.

Если в comment.php вашего шаблона такая ситуация, то это означает, что в данной теме нет собственной (пользовательской) функции для вывода комментариев и для этого используется стандартный шаблон (шаблон из ядра WordPress). Расположен он файле . А поскольку , то в данном случае изменить стили отображения комментариев не получится, пока мы не прейдем ко второму варианту.

2. Вызов wp_list_comments с колбэком:

callback=custom_comment указывает, что для вывода комментариев у нас есть пользовательская функция custom_comment , код которой, грубо говоря, мы и передаем в качестве параметра для исполнения в стандартную функцию wp_list_comments . Но нас интересует больше не техническая сторона этого вопроса, а именно наличие в шаблоне собственной функции для вывода комментариев. Код этой функции расположен в .

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

Код пользовательской функции интуитивно понятный. В нем, обычно, используются следующие стандартные функции WordPress:

get_comment_author_link() – получает html ссылку на сайт автора текущего комментария;

get_comment_date() – получает дату комментария;

get_comment_time() – получает время комментария;

comment_text() – выводит текст комментария;

Вы можете находить фрагменты с этими функциями в коде и изменять внешний вид тех или иных элементов, обрамляя их в блоки div или span и присваивая определенные классы стилей.

Например, в коде пользовательской функции фрагмент вывода аватарки:

< div class = "comment-author" >

< / div >

Теперь осталось в style.css задать желаемые свойства классу comment-author . Подробней конкретные примеры изменения стилей рассмотрю в одной из следующих статей.

Теперь у вас может возникнуть вопрос: “Что делать, если в моем шаблоне нет пользовательской функции для вывода комментариев? ”

Ответ: нужно создать её.

Самый простой вариант – скопировать код стандартной функции WordPress comment() .

Инструкция по созданию пользовательской функции для вывода комментариев:

1. Откройтефайл /wp-includes/comment-template.php и найдите в нем функцию comment() .

Вот начало её описания

/** * @since 3.6 * @access protected * * @param object $comment Comment to display. * @param int $depth Depth of comment. * @param array $args Optional args. */ protected function comment($comment, $depth, $args) {

* @since 3.6

* @access protected

* @param object $comment Comment to display.

* @param int $depth Depth of comment.

* @param array $args Optional args.

protected function comment ($ comment , $ depth , $ args ) {

2. Скопируйте все тело функции comment() .

Скопировать нужно фрагмент кода от начала описания, показанного в пункте 1 до закрывающейся фигурной скобки } и следующего за ней подобного описания другой функции

(в которой мы убирали теги h3 в заголовке перед формой комментирования) — сегодня заставим функцию формы комментов WP работать целиком по нашим правилам:

получим возможность задавать собственные стили, менять на своё усмотрение заглавие «Добавить комментарий», исключать при необходимости определённые окошки ввода информации, например форму url, настраивать placeholder и т.д. а, главное, не потерять всё это при обновлении движка.

Нынче мы запросто выполним нашу цель, всего лишь редакцией файла функций. И коли вы чувствуете в себе силы редактировать код сайта (этот способ чуть сложнее от того, который описан ранее)…

Начнём концерт:

стоит ли редактировать ядро WordPress

Как известно, править ядро WordPress (файлы CMS) не рекомендованное занятие, в большей степени из-за того, что после обновления движка теряются наработки! Тем паче у начинающих администраторов ресурсов, эти обновления вордпресс совершаются внезапно (без их ведома) как этого избежать, читайте в этой .

стоит ли обновлять WordPress

Непременно да! …тут не может быть и разногласий! …однако это чревато, как и говорилось, тем что обновление движка затирает редакции администратора!

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

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

Приступим к редакции, но!!

…напоминаю всякий раз: заведите какой-то документ «запоминалку» всех совершаемых эксов с блогом. Копируйте редактируемые файлы. Пригодится!

Поверьте: так короче до профессионализма, ибо возможность переварки накопленных крупиц знаний в кашу маловероятна!

Что нам нужно для достижения цели:

перенести из ядра WP (из файла comment-template.php) отработку функции comment_form в директорию шаблона.

где найти файл comment-template.php

Переходим по этому пути ваш_домен/wp-includes файл comment-template.php

…открываем его (или прямо на хостинге — я делаю так), или скачиваем и редактируем в Нотепад++ — читать: как настроить Notepad++

Ищите такую строку (примерный № строки 2111)

function comment_form($args = array(), $post_id = null) {

do_action("comment_form_comments_closed");

Всё это копируете и переносите к себе в файл функций functions.php .

Обычно, все новые добавления кода помещают перед закрывающим тегом?> . Но я рекомендую добавляемый код группировать, так сказать, по теме, тогда всё запросто при необходимости отыщете.

Следующим шагом будет изменение имени функции: можете назвать её как угодно душе, хоть именным вензелем обозначить… У меня получилось так:

function my_my_ comment_form

Сохраняем наработки…

…и переходим в файл вашей темы comments.php .

В этом файле нам нужно поменять имя вызова функции, на то, которым обозвали на первом шаге:

Отыскиваете в документе такую фразу (она обычно в его финале): и просто-напросто добавляете my_my_ ну или своё имя.

Должно получиться так:

…теперь задача вызова новой функции выполнена: логика шаблона станет использовать именно наш перекопированный в тему код!

Что нам и требовалось!

Теперь всё что вам остаётся выполнить, так это подредактировать под свои нужды код новоиспечённой функции my_my_comment_form();

…или задают индивидуальную отработку placeholder — посмотрите как выглядит это у меня:

…у меня в окошке формы комментирования расположен вензель «Ваш комментарий…» который исчезает, как только комментатор набирает своё послание…

…и тому… и тому… подобное.

Есть какие-то вопросы по добавлению/уборке элементов формы комментирования, пишите, разберёмся…

или вот можете почесть пост о полезных сниппетах () для формы комментирования…

Всем привет! Сегодня я хочу Вам рассказать о том, как заставлять читателей Вашего блога оставлять комментарии на Вашем же блоге. Конечно я не хочу сказать, что мой блог буквально “кишит” комментариями, но все же, все равно что-то есть.

Немного о себе.

Создав первый блог, второй (этот – ) я страдал нехваткой комментариев на них. Давай рассмотрим этот блог. По-моему, писал неплохо, полезно, но комментариев все нет и нет. Помню, после того как дописал , думал, что будут всякие благодарности и т.п., мол создано немало новых блогов, но комментариев все равно не было…

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

Но все же, как заставить читателя оставить комментарий?

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

Поэтому, я считал, что лучше порою промолчать, “забить” на свою проблему, хотя ответа на свой вопрос в Гугле, в Яндексе не нашел. Я думал, что никто не будет откликаться на мои проблемы, отвечать на мои вопросы.

Поставив себя, на место читателя, я понял, что нужно дать понять, задавать вопросы – это не глупость, все когда-то были новичками. И в конце статей я просил оставлять комментарии к . И давал четко понять, что не нужно этого боятся.

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

Уважаемы читатели, если я даже не ответил на Ваши благодарности, знайте, я их без внимания не оставил, честно, мне действительно очень приятно…

Как сделать так, чтобы читатель оставил комментарий на блоге
  • Нужно понять, какая у Вас читательская аудитория и вникнуть в доверие к ней. Для этого, можно создать страницу “Об авторе”, разместить свою фотографию, дать ссылки на свои контакты в icq, skype, twitter, Вконтакте, facebook и др., чтобы Ваши читатели действительно знали, что Вы – живой человек, такой же как и сам читатель.
  • Можно, иногда, опубликовывать посты личного характера, например, как Вы интересно провели лето и т.п. Такие статьи “сближают” автора блога и читателей. Но не стоит преувеличивать. Не нужно отходить от тематики своего блога слишком часто, тем самым Вы оттолкнете целевую аудиторию.
  • В конце статьи просить читателей оставить комментарий. Это малоэффективный способ. Более эффективно в конце поста задать вопрос.
  • В самой статье не открывать полностью весь смысл. Пусть останется такое чувство, что Вы, якобы, пропустили естественные вещи, читатель захочет сам дополнить Вашу статью.
  • Собирать некие дискуссии. Например, немало комментариев набирают посты следующего характера: “Apple VS Nokia”, “WordPress или Joomla” и т.п. Любители одной стороны будут доказывать свое, а противоположная сторона – обратное.
  • Сделать капчу (защиту от спама для оставления комментариев) как можно проще. Конечно в идеале – полное отсуствие капчи, но спамерские боты “выносят мозг и блог” :).
    К примеру, я НИКОГДА не оставляю комментарии там, где в виде капчи используется код в картинки, если он еще и длинный, то это все, это просто конец света. Мне просто лень, не хватает времени переписывать этот набор букв.
    Поэтому для защиты от спама ставьте плагины на подобие тех, которые требуют поставить лишь галочку, что Вы не робот, ну или решить несложную математическую задачу. Кстати, о последнем плагине я подробно рассказывал в .
  • Перед комментированием вместо стандартного текста “К сожалению, пока нет комментариев” разместите, что-нибудь “заставляющее” оставить комментарии, наподобие “Оставь комментарий, нам важно ТВОЕ мнение” (первое, что пришло в голову 🙂). Этот текст можно изменить в файле comments.php.
  • Оставляйте комментарии на других блогах. В первое время это очень сильно помогает. Но потом на это не хватает всего тоже времени… Оставлять комментарий нужно осмысленно и в тему. Сразу вспомнил свой комментарий оставленный на seogramota.ru, благодаря которому я получил много новых читателей, подписчиков и бесплатную ссылку с блога с 110 Тиц и PR 2 (что такое тиц и pr и как их поднять я скоро расскажу в одном из своих уроках).
    Оставляйте комментарии со своим уникальным аватаром (это необязательно должна быть Ваша фотография). Чтобы была аватарка при оставлении комментария, Вам нужно “привязать” Ваш email (который указывается при комментировании) к картинке. Для этого просто нужно зарегистрироваться на gravatar.com , а дальше, что делать, Вы все поймете сами, я уверен.
  • Уберите возможность оставлять комментарии только зарегистрированным пользователям! Только единицы будут регистрироваться только для того, чтобы оставить комментарий.
    Для этого зайдите в админку WordPress –> Настройки –> Обсуждение и уберите галочку напротив “Пользователи должны быть зарегистрированы и авторизованы для комментирования”:

  • Можно устраивать всякие конкурсы, которые “заставят” оставлять комментарии Вашим читателям. В свое время конкурс, который я провел (напомню, он назывался “ ”), сильно мне помог. Появился некий “костяк”, “скелет” комментариев. То есть, читатели видели, что другие пользователи оставляют комментарии, значит все нормально, можно оставить и им свою лепту. Преодолели некий страх.
    Конечно, всякие конкурсы не каждый хочет устраивать: кому-то жалко денег на призы, для кого-то конкурсы кажутся бредовой идеей, но Вы возьмите себе на заметку, они очень даже эффективные.
    В свою очередь я прошу прокомментировать всего лишь одну статью (я буду Вам благодарен), вот
  • Похожие публикации