(в которой мы убирали теги 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 — посмотрите как выглядит это у меня:

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

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

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

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

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

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

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

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

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

Как правило читатели не комментируют из-за боязни: «А что об о мне подумают? Вдруг я напишу не то и все будут смеяться…». Вы, как автор сайта, должны дать понять читателю, что вы такой же человек как и все, что нечего бояться…

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

Так же очень хорошо работают плагины на подобии — плагин для отображения последних оставленных комментариев. Люди будут видеть, что ваш сайт активно комментируют и ничего страшного не происходит 😉

2) Мотивируйте читателя оставить комментарий.

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

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

3) Используйте конкурсы и другие толчки к комментированию.

Раньше очень-очень хорошо работали так называемые конкурсы комментариев, где читатели получали выгоду от того, что комментируют сайт. Сейчас же этот способ работает менее эффективно, всему виной другие ЖИРНЫЕ конкурсы, которые устраивают популярные блогеры с помощью спонсоров таких как , Rookee, Seopult и так далее…

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

Виды конкурсов комментариев:

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

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

4) Комментарии, которые создают спор.

Старайтесь постоянно высказывать свое мнение, даже если оно идет против общественного. Очень часто такие статьи, как почему Android лучше iOs, набирают рекордные количества комментариев, потому что люди спорят. Одна из моих статей — это где я написал , почему он лучше и немного унизил другие CMS системы.

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

5) Всегда отвечайте на каждый комментарий.

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

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

7) Комментируйте другие блоги.

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

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

8) Оставляйте комментарий от одного имени и с одинаковым аватаром.

Это очень важно! Будь то если вы оставляете комментарии на своем сайте, или на чужом, всегда это делайте только с одинаковым ником и аватаром. Как использовать один и тот же аватар я писал тут. Зачем это нужно делать?

До скорых встреч, ваш покорный слуга Альберт и блог …

Давненько я ничего не писал про WordPress. Поэтому сегодня я поделюсь с Вами тем, как можно вручную изменить форму комментирования в ВордПрессе. Думаю, что эти знания могут пригодиться любому начинающему блогеру, ведь форма комментирования это, порой, единственное средство общения посетителей и автора. Не проходите мимо:)

Перед тем, как мы начнем какие-либо манипуляции с кодом, хочу Вас заранее предупредить, что мы будем править файлы самого WordPress’a, а не файлы темы. Да, это может-быть покажется кому-то опасным, кому-то бессмысленным, кому-то просто не понравится:) Но Я сделал это именно так и никаких проблем у меня не возникло. Советую перед началом сделать бекап редактируемого файла.
Насчет безопасности предупредил, теперь хочу показать результат, к которому я пришел.


Как мы видим, была убрана строчка «Ваш e-mail не будет опубликован. Обязательные поля помечены *». Не нужно считать посетителей безмозглыми идиотами. Они итак понимают что нужно заполнять, а что нет. Так же я спрятал названия полей внутрь самих полей. К чему эти жирные записи? Большинство посетителей уже и без названий полей может «на глаз» определить, какое к чему относится. Но внутренние хинты все таки должны присутствовать. Ну и подпись к полю комментария утратила свою ненужную жирноту. На мой взгляд, так стало гораздо лучше и свободней.

Так давайте же скорее все менять! ;)
Идем в папку своего сайта и находим в нем файл wp-includes/comment-template.php. Ищем в нем строку 1522, да да именно ее. Как я сам ее нашел это целая история, расскажу об этом чуть позже:)
Итак, открываем файл на редактирование и переходим к 1522 строчке. Сейчас она и следующие (до 1529й) примерно такие:

$fields = array("author" => "

" . "" . __("Name") . " " . ($req ? "*" : "") . "

", "email" => "", "url" => "

" . __("Website") . "" . "

",);

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

Placeholder="Текст подсказки"

Этот параметр позволяет выводить внутри полей любой текст. Используем его для вывода подсказок:

"

" "

" "

"

Удалять же будем строки:

"

" . "" . __("Name") . " " . ($req ? "*" : "") "

" . __("Website") . ""

Они отвечают за вывод подписей над полями.
В результате ВСЕХ этих манипуляций, получаем следующее:

$fields = array("author" => "

", "email" => "

", "url" => "

",);

Остается только удалить глупую подсказку «Ваш e-mail не будет опубликован. Обязательные поля помечены *». Для этого удаляем строку (примерно 1537):

"comment_notes_before" => "

" . __("Your email address will not be published.") . ($req ? $required_text: "") . "

",

Вот вроде бы и все, теперь наша форма стала немного более привлекательной. Надеюсь эта информация кому-то пригодится:)

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

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

Сегодняшняя статья посвящена выводу комментариев 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 до закрывающейся фигурной скобки } и следующего за ней подобного описания другой функции

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

Шаг 1. Разбираемся в функцией comment_form и ее аргументами

Рассмотрим функцию WordPress comment_form . Она отвечает за вывод формы комментариев, которая выводится на странице или записи. Вызов данной функции в основном можно встретить в файле comments.php в папке темы. Данный файл включается в различных местах, например, в файлах single.php и page.php , непосредственно или через вызов функции comments_template .

Описание функции можно найти в кодексе WordPress .

Если использовать функцию comment_form для вывода формы, то она будет выводиться с использованием параметров по умолчанию и будет содержать такие поля как имя, email (оба поля являются обязательными), веб сайт и содержание комментария. В теме по умолчанию Twenty Eleven форма будет выглядеть следующим образом.

Некоторые важные аргументы функции comment_form:

  • fields -с его помощью можно управлять выводом полей в форме комментария.
  • comment_notes_before и comment_notes_after - используются для вывода информации перед и после формы.
  • title_reply - используется для изменения названия ответа, которое по умолчанию имеет значение ‘Leave a Reply’.
  • label_submit - используется для изменения текста на кнопке отправки комментария.
Шаг 2. Настраиваем форму комментария с помощью функции comment_form

Теперь настроим нашу форму комментария с помощью передачи аргументов в функцию comment_form .

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

$fields = array("author" => "

" . "" . __("Name") . " " . ($req ? "*" : "") . "

", "email" => "", "url" => "

" . __("Website") . "" . "

",);

Если нам нужно удалить поле, например, website , нужно просто исключить его из массива и передать массив в функцию comment_form .

$commenter = wp_get_current_commenter(); $req = get_option("require_name_email"); $aria_req = ($req ? " aria-required="true"" : ""); $fields = array("author" => "

" . "" . __("Name") . " " . ($req ? "*" : "") . "

", "email" => "",); $comments_args = array("fields" => $fields); comment_form($comments_args);

В дополнение также сменим название формы на ‘Please give us your valuable comment’, а надпись на кнопке на ‘Send My Comment’.

Для выполнения задачи передаем в функцию comment_form следующие аргументы:

$commenter = wp_get_current_commenter(); $req = get_option("require_name_email"); $aria_req = ($req ? " aria-required="true"" : ""); $fields = array("author" => "

" . "" . __("Name") . " " . ($req ? "*" : "") . "

", "email" => "",); $comments_args = array("fields" => $fields, "title_reply"=>"Please give us your valuable comment", "label_submit" => "Send My Comment"); comment_form($comments_args);

Теперь форма комментария будет выглядеть следующим образом:

Шаг 3 . Удаляем поля из формы с помощью крюка

Также форма комментария WordPress может быть изменена с помощью крюков и фильтров. Такая настройка может быть особенно полезна при работе с плагином, когда нужно настроить несколько элементов, но не изменять файлы темы. Фильтр для добавления иди удаления полей из формы - ‘ comment_form_default_fields ‘

Удалим поле адреса URL с помощью фильтра. Приведенный код можно использовать в плагине или в файле functions.php активной темы.

Function remove_comment_fields($fields) { unset($fields["url"]); return $fields; } add_filter("comment_form_default_fields","remove_comment_fields");

Шаг 4. Добавляем данные в форму комментария с помощью крюка

Мы можем добавить поля в форму с помощью фильтра ‘ comment_form_default_fields ‘. Добавим поле возраста автора с помощью фильтра и сохраним данное поле дополнительные данные и будем их выводить в комментарии.

Добавляем поле следующим образом:

Function add_comment_fields($fields) { $fields["age"] = "

" . __("Age") . "" . "

"; return $fields; } add_filter("comment_form_default_fields","add_comment_fields");

#respond .comment-form-author label, #respond .comment-form-email label, #respond .comment-form-url label, #respond .comment-form-age label, #respond .comment-form-comment label { background: #eee; -webkit-box-shadow: 1px 2px 2px rgba(204,204,204,0.8); -moz-box-shadow: 1px 2px 2px rgba(204,204,204,0.8); box-shadow: 1px 2px 2px rgba(204,204,204,0.8); color: #555; display: inline-block; font-size: 13px; left: 4px; min-width: 60px; padding: 4px 10px; position: relative; top: 40px; z-index: 1; }

Теперь наша форма комментария будет выглядеть следующим образом:

Теперь возраст хранится как дополнительная информация. Нужно использовать крюк в ‘ comment_post ‘:

Function add_comment_meta_values($comment_id) { if(isset($_POST["age"])) { $age = wp_filter_nohtml_kses($_POST["age"]); add_comment_meta($comment_id, "age", $age, false); } } add_action ("comment_post", "add_comment_meta_values", 1);

Как только данные сохранены, их можно выводить в комментарии следующим образом:

Шаг 5 . Настройка комментариев для определенных типов записей

Иногда требуется использовать поля в комментариях только для определенных типов записей. Изменим код для вывода поля возраста только для записи типа book :

Function add_comment_fields($fields) { if(is_singular("books")) { $fields["age"] = "

" . __("Age") . "" . "

"; } return $fields; } add_filter("comment_form_default_fields","add_comment_fields");

Шаг 6. Создаем возвратную функцию для вывода комментариев

Функция wp_list_comments используется для вывода комментариев в записях. В кодексе WordPress функция описана подробно.

wp_list_comments имеет аргумент ‘ callback ‘ в котором можно определить функцию, которая вызывается при выводе комментария.

В теме Twenty Eleven в файле comments.php можно найти строку:

Wp_list_comments(array("callback" => "twentyeleven_comment"));

Изменим ее на:

Wp_list_comments(array("callback" => "my_comments_callback"));

Функция my_comments_callback будет вызываться для каждой записи.

Шаг 7. Стилизация комментариев

Теперь мы немного изменим стиль комментария. Просто будем выводить содержание записи и поле возраста, которое было добавлено нами ранее. Мы также изменим цвет фона для комментариев.

Код функции ‘ my_comments_callback ‘:

Function my_comments_callback($comment, $args, $depth) { $GLOBALS["comment"] = $comment; ?>