» »

Расстояния отправить комментарий comment reply. WordPress комментарии – полное оформление внешнего вида. Форма отправки комментария

25.07.2021

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

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

Вот что мы сделаем:

  • Полная пользовательская настройка
  • Оформление внешнего вида
  • Нумерация комментариев
  • Подсчет сообщений каждого пользователя
  • Присвоить статус каждому пользователю
  • И прочее мелочи

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

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

В WordPress’e вывод комментариев осуществляется через функцию wp_list_comments , обычно в файле comments.php . А формирование отдельных функций так же, как и сам цикл, используется из шаблона системного файла comment-template.php . Но в редких случаях бывает, что настройка может находиться в теме WordPress, файл functions.php или comments.php .

Так вот, если ваша тема не попадает в редкий случай и есть необходимости сделать свои настройки, тогда открываем файл functions.php и перед знаком?> добавляем следующий код:

If (! function_exists("my_comment")) : function my_comments($comment, $args, $depth) { global $commentnumber; $GLOBALS["comment"] = $comment; switch ($comment->comment_type) : case "pingback" : case "trackback" : ?>

  • После этих манипуляций ваши комментарии будут формироваться по шаблонной функции из файла functions.php текущей темы.

    Подсчет комментариев каждого пользователя

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

    Открываем уже знакомый нам файл functions.php и прописывает в конце перед знаком?> следующий код:

    //подсчет сообщений пользователей function bac_comment_count_per_user() { global $wpdb; $comment_count = $wpdb->get_var("SELECT COUNT(comment_ID) FROM ". $wpdb->comments. " WHERE comment_author_email = "" . get_comment_author_email() ."" AND comment_approved = "1" AND comment_type NOT IN ("pingback", "trackback")"); if ($comment_count == 1) { echo " 1 Сообщение"; } else { echo " " . $comment_count . " Сообщений"; } }

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

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

    Присваиваем статус каждому пользователю в зависимости от количества его комментариев

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

    Снова открываем файл functions.php и перед знаком?> добавляем следующий код:

    //статус пользователя function get_author_class($comment_author_email,$user_id){ global $wpdb; $adminEmail = get_option("admin_email"); $author_count = count($wpdb->get_results("SELECT comment_ID as author_count FROM $wpdb->АдминUseR"; if($author_count>=1 && $author_count=50 && $author_count=100 && $author_count=250 && $author_count=400 &&$author_count=800 && $author_countПрофессор"; }

    И в желаемом месте выводим функцию вызова:

    Объяснение: функция, как и предыдущая, связана с электронной почтой юзера. Только здесь основной задачей является непросто счет сообщений, а количество от и до в зависимости от установленного числа. И как только пользователь достигает его он получает определенную должность. Всего статусов имеется 7, плюс админ и знак отличия для зарегистрированных участников.

    Полностью готовый код комментариев

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

    Открываем файл functions.php и в конце перед знаком?> добавляем следующий код:

    //подсчет сообщений пользователей function bac_comment_count_per_user() { global $wpdb; $comment_count = $wpdb->get_var("SELECT COUNT(comment_ID) FROM ". $wpdb->comments. " WHERE comment_author_email = "" . get_comment_author_email() ."" AND comment_approved = "1" AND comment_type NOT IN ("pingback", "trackback")"); if ($comment_count == 1) { echo " 1 Сообщение"; } else { echo " " . $comment_count . " Сообщений"; } } //статус пользователя function get_author_class($comment_author_email,$user_id){ global $wpdb; $adminEmail = get_option("admin_email"); $author_count = count($wpdb->get_results("SELECT comment_ID as author_count FROM $wpdb->comments WHERE comment_author_email = "$comment_author_email" ")); if($comment_author_email ==$adminEmail) echo "Админ"; if($user_id!=0 && $comment_author_email !=$adminEmail) echo "UseR"; if($author_count>=1 && $author_count=50 && $author_count=100 && $author_count=250 && $author_count=400 &&$author_count=800 && $author_count=1200 && $comment_author_email !==$adminEmail) echo "Профессор"; } //пользовательская настройка комментариев if (! function_exists("wordsmall_comment")) : function wordsmall_comment($comment, $args, $depth) { global $commentnumber; $GLOBALS["comment"] = $comment; switch ($comment->comment_type) : case "pingback" : case "trackback" : ?> @ Ответ для:

    Меняем на эту:

    Заключительный шаг. Открываем файл style.css и в конце прописываем следующие стили:

    My_commentlist{ border-top:none; } .my_commentlist .comment{ padding:0 0 15px 0; border:none; } .my_commentlist .pingback{ padding:0 0 15px 0; border:none; } .my_commentlist .comment .children { list-style-type: none; padding:0px; margin-left:0px;/*если нужен отступ для древовидных ком. поставьте 15px*/ } .my_commentlist .comment .children .comment{ margin:15px 0 0 0; border:none; padding: 0; } #comments { background: #fff; } #comments .my_commentlist { margin: 10px 0; padding: 0; list-style:none; background: #ebf0f3; padding: 5px; } #comments .my_commentlist .comment { margin:0; padding: 0 0 10px; background: #fff; } #comments .my_commentlist .my_comment-author { display: inline; border-right: 1px solid #e0e0e0; width: 100px; float: left; margin: 0px 15px 10px 0; } #comments .my_commentlist .commentmetadata { float:left; } #comments .my_commentlist p { clear:none; color: #555; font: 14px arial; line-height: 23px; } #comments .my_commentlist .comment-content { margin-left: 116px; padding-right: 10px; } #comments .my_commentlist .reply { text-align:right; } #comments .my_commentlist .reply a{ background: #f5f5f5; border: 1px solid rgba(0, 0, 0, 0.06); border-radius: 2px; color: #515456; display: inline-block; font-size: 13px; font-weight: normal; line-height: 30px; margin-right: 15px; min-height: 30px; padding: 0 12px; text-align: center; text-decoration: none; } .my_commentlist .avatar{ border: medium none; border-radius: 50%; float: none; margin: 5px auto; padding: 0px; display: table; } .my_commentlist .comment-header{ height: 30px; background: #DEE5EB; margin-bottom: 15px; } .my_commentlist cite.fn{ color: #444; font: bold 13px/30px arial; padding-left: 10px; } .my_commentlist .com_date { color: #8ca0b5; font: normal 13px/30px arial; float: right; padding-right: 15px; } .my_commentlist .commentnumber { color: #8ca0b5; float: right; font: italic 13px/30px arial; padding-right: 15px; } .my_commentlist .comment-body { overflow: hidden; position: relative; background:#fff; } .my_commentlist .rep-authorcom { color: #25394e; font-size: 13px; line-height: 30px; } .my_commentlist .edit-link a { background: none !important; border: none !important; border-radius: 0 !important; color: #999!important; display: inline-block; font-size: 11px !important; font-weight: normal; line-height: 30px; margin-right: 5px !important; min-height: 30px; padding: 0 !important; text-align: center; text-decoration: none; } .com_per { border: medium none; color: #666; display: block; font-size: 11px; text-align: center; } .vip1,.vip, .vp, .vip2, .vip3, .vip4, .vip5, .vip6, .vip7 { border: medium none; font: bold 13px arial; display: block; text-align: center; margin-bottom: 5px; text-decoration: none; } .vp {color: #e82e24;} .vip1 {color: #348be8;} .vip2 {color: #BE005E;} .vip3 {color: #2e517e;} .vip4 {color: #658a18;} .vip5 {color: #00A56D;} .vip6 {color: #e35d28;} .vip7 {color: #99A400;} .vip {color: #4c5176;font-size: 11px;margin: 0;}

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

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

    Способ №1

    Для первого способа, вы должны в папке с темой, что установлена у вас на сайте, найти файл comments.php . Если такой есть, открыть его и поискать в нем массив, отвечающий за настройки и вывод содержания формы комментариев. Выглядит он примерно так:

    $args = array("comment_notes_before" => "

    ", "comment_field" => "

    Комментарий *

    ", "id_submit" => "comm_subm", "label_submit" =>

    Так вот, к этому массиву, нужно добавить новый параметр с нужным значением и все. В нашем случаи, это:

    "title_reply" => "Оставить свой отзыв",

    Как понимаете - Оставить свой отзыв , это и есть новое название вместо - Добавить комментарий. Добавить такой параметр можно в конец или в начало массива. Получится как-то так:

    $args = array("title_reply" => "Оставить свой отзыв", "comment_notes_before" => "

    Заполните поля ниже. Ваш e-mail не будет опубликован. Обязательные поля помечены *

    ", "comment_field" => "

    Комментарий *

    ", "id_submit" => "comm_subm", "label_submit" => "Отправить",); comment_form($args);

    Добавлено в начало и теперь, на страницах записей будет выводится строка - Оставить свой отзыв. Этот способ не сложный и требует минимальных сил, главное правильно определить массив. Но иногда так бывает, что внутри темы нет файла comments.php или в нем нет массива и вы не знаете как правильно его туда добавить, тогда вам поможет второй способ.

    Способ №2

    Суть второго способа заключается в том, чтобы добавить новую функцию, которая и сделает замену названия. Для этого в папке с активной темой, нужно найти файл function.php с пользовательскими функциями и в удобное место, если не знаете такого, то в самый конец перед закрывающим тегом PHP - ?> , если такого нет, то просто в самый конец, добавить вот такой код:

    Function wph_change_submit_label($defaults) { $defaults["title_reply"] = "Оставить свой отзыв"; return $defaults; } add_filter("comment_form_defaults", "wph_change_submit_label");

    Бонус

    Это то же самое, по сути что делалось и в первом способе, просто, там мы внедряли непосредственно в массив, а тут через фильтр. После этих действий, вы увидите изменение в названии. Как и в первом способе, можете поменять текст - Оставить свой отзыв, на тот что вам нравится. Данный текст указан как пример.

    Еще хочу предложить и обратить внимание на склонение слова Комментарии. Если у вас выводит в форме строку - Опубликовано 1 комментарий или Комментариев: 10. Можете воспользоваться Функцией из статьи . Если вы уже пользуетесь ней, то рекомендую в строке с массивом:

    Array("комментарий","комментария","комментариев")

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

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

    На этом все, спасибо за внимание. 🙂

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

    О том, как это реализовано прочитаете ниже.

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

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

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

    И это еще пол беды – можно сказать, подписался, значит сам виноват, знал, на что идешь, поставил галочку — разгребай теперь (или не убрал, если по умолчанию стоит отмеченной ) 🙂

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

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

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

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

    Надеюсь, мой призыв будет услышан – верните галочку, долой принудиловку! 🙂

    Плагин оповещения об ответе на комментарий Comment Reply Notification.

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

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

    Смысл его работы прост – как только вы получаете ответ на свой коммент, то вам на почту приходит письмо с уведомлением, причем только тогда, когда ответ лично на ваше сообщение – называется почувствуйте разницу с глючным Subscribe to Comments 🙂 В результате и на почте порядочек, и миссия выполнена — посетитель доволен, что с ним разговаривают да еще вежливо напоминают об этом, что бы не напрягался лишний раз всё держать в памяти.

    Подробно расписывать настройки плагина не буду, уже не маленькие думаю, они там элементарные – выбрали в каких случаях информировать об ответе, настроили текст письма об уведомлении (желательно все на русском сделать конечно-же ) и на том всё, наслаждаемся возросшей комментируемостью блога) Если у кого-то все же возникнут проблемы — пишите в комментариях.

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

    Значится после установки плагина, заходим в его настройки и включаем Commenter choose to do so(default checked) в настройках, если хотим дать право выбора посетителю, желает ли он получать ответ на свой комментарий по почте (хотя тут можно смело выбрать «Если ответ от автора записи или администратора» или «Всегда информировать» )

    Под формой комментариев появится вот такая надпись «Notify me of follow-up comments via e-mail» которую желательно бы перевести. Делается это напрямую в файле плагина comment-reply-notification.php.

    Просто открываем его в текстовом редакторе, находим через поиск фразу Notify me of follow-up comments via e-mai и в 2-х местах заменяем ее на нужную нам, например Оповещать об ответ на мой комментарий по е-мейлу. Закрываем, сохраняем, все готово)

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

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

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

    А вы каким плагином пользуетесь для оповещения своих комментаторов?

    Здравствуйте друзья! В этой статье будет показано, как увидеть ответы на комментарии через почту, Вашим комментаторам.

    Ответы на комментарии через плагин Comment Reply Notification

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

    В процессе обучения в Эксперт Группе (ЭГ) многие студенты задавали вопросы по установке и настройке плагина Comment Reply Notification, такой же вопрос возникал и у читателей блога. Точнее был вопрос о том, как сделать так, чтобы комментатор Вашего блога увидел Вашы ответы на комментарии. Статьи на эту тему на блоге нет, но, думаю, сегодняшняя статья исправит это положение.

    Итак, на Вашем блоге читатель сделал комментарий. Естественно, Вы или другой читатель на него отвечаете, но комментатор об этом может не узнать и не напишет свой новый ответ. Чтобы исправить эту ситуацию, существует плагин Comment Reply Notification, который отсылает ответы на комментарии на почту. То есть, читатель написал на Вашем блоге комментарий, Вы на него ответили. Теперь плагин Comment Reply Notification немедленно по почте извещает комментатора о том, что на его комментарий дан ответ.

    Как правило, комментатор возвращается на блог и пишет новые ответы на комментарии. Для Вашего блога это очень хорошо:

    • во-первых, появляются новые комментарии, поисковики считают, что статья интересная и поднимают её значимость;
    • во-вторых, новые комментарии завязывают дискуссию и в процесс комментирования подключаются новые комментаторы;
    • в-третьих, написание комментариев (ответы на комментарии) требует времени, значит люди будут больше находиться на блоге, улучшая поведенческие факторы;
    • в-четвертых, постоянные комментаторы, увеличат ядро аудитории Вашего блога.

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

    Установка плагина Comment Reply Notification достаточно простая и она показана в прилагаемом ниже видео. Далее производится активация плагина Comment Reply Notification и делаются его настройки. Нажимаем в панели управления «Настройки» и «Comment Reply Notification», заходим на страницу настроек плагина. Подключаем функцию «Всегда информировать», в поле «Настройки темы e-mail письма с уведомлением», прописываем название своего блога (сайта).

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

  • Ваш комментарий к записи.
  • Получил новый ответ.
  • Здесь Ваш комментарий.
  • Здесь новый ответ.
  • Вы можете посмотреть больше информации для комментария для этой статьи здесь.
  • Спасибо за комментарии.
  • Комментарий Ответить Уведомление.
  • Это письмо было отправлено автоматически, пожалуйста не отвечайте на него.
  • Сама замена показана на прилагаемых скринах:

    Фразы, которые подчеркнуты красным, нужно заменить на русские (показаны выше).

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

    После изменения текста письма, нажимаем кнопку «Сохранить настройки». На этом работу по настройке плагина Comment Reply Notification можно считать законченной. Смотрите видео, где показан процесс установки и настройки плагина Comment Reply Notification:

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

    Получайте новые статьи блога прямо себе на почту. Заполните форму, нажмите кнопку "Подписаться"

    В 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; ?>