Конструктивные элементы шаблона WordPress | Файл comments.php | Форма комментирования
Продолжим рассматривать файл comments.php шаблона WordPress. Сегодня поговорим о форме для комментирования.
Традиционно так сложилось, что форма для комментирования состоит из четырех полей: имя комментатора, его e-mail, его сайт (если есть) и, наконец, непосредственно сам текст комментария.
Первые два поля и поле для текста обязательно должны быть заполнены, иначе движок выдаст ошибку. Поле для адреса сайта является не обязательным.
Сейчас некоторые блоггеры намеренно удаляют это поле из файла comments.php, пытаясь таким образом бороться со спамом. Это, конечно же, их дело. Скажу лишь, что на работоспособность блога это никак не влияет.
Как и любая форма в HTML, форма для комментариев также начинается с тэга <form> и заканчивается тэгом </form>. Вот в этих пределах и будем ковырять файл comments.php.
Внутри формы кроме самих полей может быть добавлено много всякого мусора полезного.
Например, во многих шаблонах код формы начинается с приветствиея и ссылками для авторизации (входа и выхода). Вы можете спокойно добавлять здесь свой текст. Например, краткий свод правил комментирования из нескольких пунктов:
<p>Приветствую вас, <a href="<?php echo get_option('siteurl'); ?>/wp-admin/profile.php"><?php echo $user_identity; ?></a>. <a href="<?php echo get_option('siteurl'); ?>/wp-login.php?action=logout" title="Выйти">Выйти »</a></p>
Иногда попадается такая конструкция:
<!-- <p><small><strong>XHTML: </strong> You can use these tags: <code><?php echo allowed_tags(); ? > </code></small></p>-->
Означает она просто разрешение комментаторам на использование некоторых HTML тэгов в своих комментах. Строка кода закомментирована знаками <!-- --> и поэтому по-умолчанию не видна. Стоит их убрать, как строчка появится под окном для текста комментария.
Естественно, вы можете переписать ее по-русски и добавить, что спамеров отстреливаете еще на подходе.
Далее после приветствия идут непосредственно поля формы. Каждое из них имеет свой уникальный номер tabindex="1" и т.д.:
<p><input type="text" name="author" id="author" value="<?php echo $comment_author; ?>" size="40" tabindex="1" /> <label for="author">Имя <?php if ($req) echo "(обязательно)"; ?> </label></p>
Соответственно, если вы добавляете новое поле (например, для работы плагина математической антиспам-капчи), то нумерация не должна повторяться или меняться местами.
Скажем, если вы добавили поле для ввода капчи сразу после поля с url сайта, то номер его должен быть tabindex=»4″. Номера же поля для комментов и кнопки отправки соответственно должны сменить номера с 4 и 5 на 5 и 6.
Что можно еще сделать с формой комментариев на WordPress
В предложенном выше варианте поле и текст описания к нему будут вытянуты в одну строку:
Если код прописать таким способом (встречается чаще всего в шаблонах):
<p><label for="author">Имя - <?php if ($req) echo "Обязательно"; ?> </label><br />
<input type="text" name="author" id="author" value="<?php echo $comment_author; ?>" size="40" tabindex="1" /></p>
То выглядеть форма будет так:
На что здесь стоит обратить внимание.
Во-первых, текст описания. Буржуи были не дураки, придумав добавлять к описаниям полей имени и мыла слово «Обязательно» (required). Ибо не все читатели знают порядки, устанавливаемые движком WordPress.
И если, к примеру, чел пишет коммент, используя браузер ИЕ, и забудет вписать свой е-мейл, то при попытке отправить комментарий получит сообщение об ошибке, а его комментарий, долго и тщательно продуманный и рожденный в муках, будет бесследно утерян.
Во-вторых, если присмотреться внимательно, то у каждого поля в форме есть свой идентификатор id. Используя их, можно прописать в файле стилей CSS для каждого свой индивидуальный стиль отображения.
Это очень удобно, например, когда вам надо, чтобы кнопка отправки выглядела несколько иначе, нежели сами поля формы.
Я имею в виду, что у всех полей (включая и кнопку) используется стандартный тэг input. И если вы в стилях пропишете правила именно для input, то и поля и кнопка будут выглядеть одинаково. Улавливаете?
Еще пара замечаний напоследок:
1. Если вы используете плагин для подписки на комментарии (Subscribe-to-comments), то теперь уже не нужно добавлять в файл comments.php строку:
<?php show_subscription_checkbox(); ?>
Сейчас плагин добавляет ее автоматически.
2. Если хотите сделать окно для текста комментария крупнее (по высоте), то в строке:
<p class="contain"><textarea name="comment" id="comment" cols="100%" rows="10" tabindex="4"></textarea></p>
Проставьте для свойства rows большее значение (по-умолчанию там 10).
В следующий раз рассмотрим подробно файл сайдбара(ов) — sidebar.php.
Конструктивные элементы шаблона WordPress | Файл header.php
Конструктивные элементы шаблона WordPress | Файл index.php | Часть 1
Конструктивные элементы шаблона WordPress | Файл index.php | Часть 2
Конструктивные элементы шаблона WordPress | Файл single.php
Конструктивные элементы шаблона WordPress | Файл comments.php | Вывод комментариев
Конструктивные элементы шаблона WordPress | Файл comments.php | Форма комментирования
Конструктивные элементы шаблона WordPress | Файл sidebar.php
Конструктивные элементы шаблона WordPress | Файл footer.php
Конструктивные элементы шаблона WordPress | Файл 404.php