Ваш путь: Главная »  » текущая страница

возможно заказать разработку или сопровождение, услуги вашего сайта/блога

 
написано: — 
отредактировано: 2021-03-16
издатель:  функции:  реплики: 1 комментарий
 
Запросто с WordPress — создание сайтов ATs media

comment_form()

comment_form() — выводит на экран код формы комментирования WordPress — используется в шаблонах.

 

Большинством строк/полей формы комментирования можно управлять с помощью массива параметров $args, который передается в функцию. Мы также можем использовать фильтры comment_form_default_fields чтобы изменять данные массива полей, которые включены в функцию по умолчанию: возможно добавить новое произвольное поле, либо же удалить.

 

Поля имеют индивидуальный фильтр comment_form_field_$name, —  здесь $name — это ключ, используемый в массиве…

 


 

 

 

 

 

Возможные хуки из функции comment_form()

 

 

 

 

comment_form_comments_closed
comment_form_default_fields // позволяет изменять/добавлять поля: эл/п, сайт, имя...
the_permalink
comment_form_defaults
comment_form_before
comment_form_must_log_in_after
comment_form_top
comment_form_logged_in
comment_form_logged_in_after
comment_form_fields
comment_form_field_comment
comment_form_before_fields
comment_form_field_(name)
comment_form_after_fields
comment_form_submit_button
comment_form_submit_field
comment_form
comment_form_after

 

 

 

Функцию comment_form() возможно целиком перенести в шаблон

 

 

 

к оглавлению

шаблон использования:

 

 

comment_form( $args, $post_id );

 

 

или прямо так:

 

comment_form( $args = array(), $post_id = null );

 

 

 

аргументы параметра $args

 

 

 

$args (массив)

Аргументы, в соответствии с которыми будет создана форма комментирования.

По умолчанию: предустановленные ВП.

 

 

fields (массив)

Ассоциативный массив, состоящий из ID полей (не относится поле ввода комментария).

 

 

author (строка) Поле автора комментария HTML

 

 

примерно так выглядит массив id полей:

 

 

$args = array(
'fields' => array(
'author' => '<p class="comment-form-author"><label for="author">Имя:</label> <input id="author" name="author" type="text" value="" size="30" /></p>',
'email' => '<p class="comment-form-email"><label for="email">E-mail:</label> <input id="email" name="email" type="text" value="" size="30" /></p>',
'url' => '<p class="comment-form-url"><label for="url">Сайт:</label> <input id="url" name="url" type="text" value="" size="30" /></p>'
));

 

 

Поля будут переданы через fields, они же и будут выведены в форме.

Параметр не разрешает по отдельности менять HTML полей: либо меняете сразу все поля, либо не меняете вовсе!

 

 

email (строка) — Поле адреса электронной почты автора комментария…

 

url (строка) Поле URL автора комментария

 

cookies (строка) Поле для согласия использование файлов cookie в комментариях

 

comment_field (строка) Поле текста комментария

 

must_log_in (строка) HTML-элемент для сообщения: если для комментирования нужна регистрация/авторизация

 

logged_in_as (строка) HTML-элемент для сообщения /вошел в систему как [пользователь]/

 

comment_notes_before () HTML-элемент для сообщения, отображаемого перед полями комментариев, если пользователь не вошел в систему. По умолчанию ‘Ваш адрес электронной почты не будет опубликован

 

comment_notes_after (строка) HTML-элемент для сообщения, отображаемого после поля textarea (до кнопки Отправить коммеентарий).

 

 

'<p class="form-allowed-tags">' . sprintf( __( 'You may use these <abbr title="HyperText Markup Language">HTML</abbr> tags and attributes: %s' ), ' <code>' . allowed_tags() . '</code>' ) . '</p>'

 

 

 

action (строка) Атрибут действия элемента формы комментария. /wp-comments-post.php

 

id_form (строка) Атрибут id элемента формы комментария: commentform

 

id_submit (строка) Атрибут id элемента отправки комментария: submi

 

class_container (строка) Атрибут класса элемента формы комментария: comment-form

 

class_form (строка) Атрибут класса элемента формы комментария: comment-form

 

class_submit (строка) Атрибут класса элемента отправки комментария: submit

 

name_submit (строка) Атрибут имени элемента отправки комментария: submit

 

title_reply (строка) Переводимая метка кнопки: Leave a Reply

 

title_reply_to (строка) …метка кнопки ‘Ответить’. По умолчанию «Оставить ответ % s», где % s — автор комментария, на который осуществляется ответ

 

title_reply_before (строка) отображается перед заголовком формы комментария: по типу — <h3 id="reply-title" class="comment-reply-title">...

 

title_reply_after (строка) отображается после заголовка формы комментария: </h3>

 

cancel_reply_before (строка) отображается перед ссылкой для отмены ответа

 

cancel_reply_after (строка) …после отмены…

 

cancel_reply_link (строка) метка кнопки: Cancel reply

 

label_submit (строка) кнопка Отправить… Post a comment

 

submit_button (строка) формат для кнопки: <input name="%1$s" type="submit" id="%2$s" class="%3$s" value="%4$s" />

 

submit_field (строка) формат разметки вокруг кнопки «Отправить» и скрытых полей комментария: <p class="form-submit">%1$s %2$s</p> где: %1$s разметка кнопки отправки %2$s скрытые поля комментария

 

format (строка) Формат формы комментария: ‘xhtml‘. принимает ‘xhtml‘, ‘html5‘.

 

 

$post_id (строка/массив/число) — array()

ID поста, для которого нужно вывести форму комментирования.

По умолчанию: null (просматриваемый пост)

 

 

 

 

к оглавлению

пример: как изменить некоторые поля формы комментария

 

 

 

$comments_args = array(
// Change the title of send button
'label_submit' => __( 'Send (Отправить)', 'textdomain' ),
// Change the title of the reply section
'title_reply' => __( 'Write a Reply or Comment', 'textdomain' ),
// Remove "Text or HTML to be displayed after the set of comment fields".
'comment_notes_after' => '',
// Redefine your own textarea (the comment body).
'comment_field' => '<p class="comment-form-comment"><label for="comment">' . _x( 'Comment', 'noun' ) . '</label><br /><textarea id="comment" name="comment" aria-required="true"></textarea></p>',
);
comment_form( $comments_args );

 

 

 

 

к оглавлению

использование фильтра comment_form_field_{ID поля}

 

 

 

Заменим имя поля по умолчанию «Сайт» на «Ваш сайт:».

 

Добавим код показанный ниже в functions.php активного шаблона:

 

 

 

add_filter( 'comment_form_field_url', 'my_change_url_label', 10, 1);
function my_change_url_label( $field ) {
return '<p class="comment-form-url"><label for="url">Ваш сайт:</label> <input id="url" name="url" type="text" value="" size="30" /></p>';
}

 

 

 

 

еще один пример работы с фильтрами…

 

…попробуем удалить поле Сайт (Url).

 

 

 

к оглавлению

comment_form_default_fields — удалим поле сайт:

 

 

шаблон:

 

 

add_filter('comment_form_default_fields', 'remove_website_field');
function remove_website_field($fields) {
unset($fields['url']);
return $fields;
}

 

 

 

рабочий пример:

 

 

add_filter( 'comment_form_default_fields', 'my_remove_url_field', 10, 1);
function my_remove_url_field( $fields ) {
unset( $fields['url'] );
return $fields;
}

 

 

 

 

 

Находится в ядре: /wp-includes файл comment-template.php Кодекс.

 

 

 

 

Плагин Ats Privacy Policy добавит автоматом чекбокс принятия политики конфиденциальности к форме комментирования…

 

 

 

 

 

дополнительный блок Об авторе в проф. пользователя с текстовым редактором

 

 

 

 

 

 

 

 

Как работать с условными тегами WP: пример на странице пагинации — закрываем в noindex,follow

 

 

 

 

 


...вопросы в комментариях - помогу, в чём дюжу...
mihalica.ru !


Михаил ATs - владелец блога запросто с Вордпресс - в сети нтернет давным-давно...

...веб разработчик студии ATs media: помогу в создании, раскрутке, развитии и целенаправленном сопровождении твоего ресурса в сети... - заказы, вопросы... разработка...




Нажатия на кнопочки определяют Ваше высокое гражданское сознание
Удачи в работе и творчестве..!
Статьи по теме:
другие функции:

Поделитесь соображениями: Ваши мысли очень важны!

Внимание! Обязательные поля помечены *

  отныне доступен плагин: ats privacy policy ©


  1. Изучаю работу формы комментирования. Пока много непонятного.
    Спасибо за работу и плагин.

    Ответить - Александр