Тонкая настройка формы комментирования

Тонкая настройка формы комментирования

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



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

Насчет безопасности предупредил, теперь хочу показать результат, к которому я пришел.



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

Так давайте же скорее все менять! 😉

Идем в папку своего сайта и находим в нем файл wp-includes/comment-template.php. Ищем в нем строку 1522, да да именно ее. Как я сам ее нашел это целая история, расскажу об этом чуть позже 🙂

Итак, открываем файл на редактирование и переходим к 1522 строчке. Сейчас она и следующие (до 1529й) примерно такие:

$fields = array( ‘author’ => ‘<p class="comment-form-author">’ . ‘<label for="author">’ . __( ‘Name’ ) . ‘</label> ‘ . ( $req ? ‘<span class="required">*</span>’ : » ) . ‘<input id="author" name="author" type="text" value="’ . esc_attr( $commenter[‘comment_author’] ) . ‘" size="30"’ . $aria_req . ‘ /></p>’, ’email’ => ‘<p class="comment-form-email"><label for="email">’ . __( ‘Email’ ) . ‘</label> ‘ . ( $req ? ‘<span class="required">*</span>’ : » ) . ‘<input id="email" name="email" type="text" value="’ . esc_attr( $commenter[‘comment_author_email’] ) . ‘" size="30"’ . $aria_req . ‘ /></p>’, ‘url’ => ‘<p class="comment-form-url"><label for="url">’ . __( ‘Website’ ) . ‘</label>’ . ‘<input id="url" name="url" type="text" value="’ . esc_attr( $commenter[‘comment_author_url’] ) . ‘" size="30" /></p>’, ); Как все просто и понятно. Достаточно просто вырезать все лишнее и немного дописать. Дописывать будет параметр

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

‘<input id="author" name="author" placeholder="Имя" type="text" value="’ . esc_attr( $commenter[‘comment_author’] ) . ‘" size="30"’ . $aria_req . ‘ /></p>’ ‘<input id="email" name="email" placeholder="Электропочта" type="text" value="’ . esc_attr( $commenter[‘comment_author_email’] ) . ‘" size="30"’ . $aria_req . ‘ /></p>’ ‘<input id="url" name="url" placeholder="Адрес блога (если есть)" type="text" value="’ . esc_attr( $commenter[‘comment_author_url’] ) . ‘" size="30" /></p>’ Удалять же будем строки:

‘<p class="comment-form-author">’ . ‘<label for="author">’ . __( ‘Name’ ) . ‘</label> ‘ . ( $req ? ‘<span class="required">*</span>’ : » ) ‘<p class="comment-form-email"><label for="email">’ . __( ‘Email’ ) . ‘</label> ‘ . ( $req ? ‘<span class="required">*</span>’ : » ) ‘<p class="comment-form-url"><label for="url">’ . __( ‘Website’ ) . ‘</label>’ Они отвечают за вывод подписей над полями.

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

$fields = array( ‘author’ => ‘<input id="author" name="author" placeholder="Имя" type="text" value="’ . esc_attr( $commenter[‘comment_author’] ) . ‘" size="30"’ . $aria_req . ‘ /></p>’, ’email’ => ‘<input id="email" name="email" placeholder="Электропочта" type="text" value="’ . esc_attr( $commenter[‘comment_author_email’] ) . ‘" size="30"’ . $aria_req . ‘ /></p>’, ‘url’ => ‘<input id="url" name="url" placeholder="Адрес блога (если есть)" type="text" value="’ . esc_attr( $commenter[‘comment_author_url’] ) . ‘" size="30" /></p>’, ); Остается только удалить глупую подсказку «Ваш e-mail не будет опубликован. Обязательные поля помечены *». Для этого удаляем строку (примерно 1537):

‘comment_notes_before’ => ‘<p class="comment-notes">’ . __( ‘Your email address will not be published.’ ) . ( $req ? $required_text : » ) . ‘</p>’, Вот вроде бы и все, теперь наша форма стала немного более привлекательной. Надеюсь эта информация кому-то пригодится 🙂

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

Теперь, если я хочу что-то изменить, то иду в файл русификации, который расположен по адресу wp-content/languages/ru_RU.po и ищу там текст, который мне нужен. Например, «Ваш e-mail не будет опубликован. Обязательные поля помечены *». Находим нужный текст и видим, что это перевод 1537й строки в файле #: wp-includes/comment-template.php:1537. Готово, мы нашли что искали 😉

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