Давненько я ничего не писал про 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, а именно правил шаблон вывода комментариев, попутно разбираясь в его устройстве и различных функциях, ответственных за вывод комментариев на постах блога. В результате я изменил стандартный вывод, создал и подключил свой собственный файл comments.php . Полученный результат решил оформить в виде статьи, так как хорошо разобрался в этой теме, и материала получилось довольно много.

Надеюсь что статья окажется полезной для владельцев блогов на WordPress, знакомых с HTML, CSS и PHP.

***

В WordPress для подключения шаблона комментариев на пост или страницу используется функция comments_template() , которая принимает в себя два параметра:

  • первый — путь к файлу шаблона, по умолчанию это comments.php в папке с текущей темой
  • второй служит для разделения комментариев по типу (обычные, трекбэки и пингбэки), по умолчанию false

Вставим comments_template() после вывода записи в шаблон поста single.php или страницы page.php .

Описание и принимаемые аргументы функции comments_template() и других упоминаемых в статье ищите в Кодексе WordPress .

Подготовка шаблона

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

  • В принципе назвать файл можно как угодно, а после в comments_template() прописать путь к этому файлу, однако лучше придерживаться стандартного названия
  • Редактировать файл можно и в админке WP, кстати
  • Лучше всего конечно писать код и сразу проверять его действие на своем блоге или на локальном сервере.

В WordPress возможно запретить комментарии для отдельных постов, поэтому перед их выводом нужно произвести проверку на «открытость»:

Это код-обертка для наших дальнейших действий. Теперь подготовим контейнер для блока комментариев с семантически корректным классом или идентификатором (класс конечно предпочтительнее):

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

"

Здесь мы указали одну из функций WordPress — the_title() , результатом выполнения этой функции станет вывод заголовка текущего поста или страницы. Если вы не хотите выводить заголовок, то можно написать просто «Комментарии читателей».

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

Итак, после такой постановки задачи становится ясно, что для реализации нам понадобятся конструкции if/else и функция вывода количества комментариев get_comments_number() . Если функция возвращает 0 (ноль), то выводим «Комментариев пока нет…», иначе «Комментарии читателей…»:

Комментариев пока нет, но вы можете стать первым Комментарии читателей к статье "" Обсуждения закрыты для данной страницы

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

Отлично, мы вывели заголовки в зависимости от наличия или отсутствия комментариев, теперь логично вывести сами комментарии — за это отвечает функция wp_list_comments() . Функция по умолчанию заключает все комментарии в теги

  • , поэтому следует добавить обертку с присвоением класса.commentlist:

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

    $args = array("avatar_size" => 64, // размер аватара 64*64px, по умолчанию 32 "reply_text" => "Ответить" // текст ответа на комментарий "callback" => "my_comments" // функция формирования внешнего вида комментария)

    Отдельного рассмотрения заслуживает параметр callback , который принимает значение имени пользовательской функции вывода комментария. С ее помощью можно гибко настроить внешний вид каждого комментария. Вот так выглядит стандартная функция вывода из файла comment-template.php: