Функция comment_form() в WordPress: настройка формы комментариев

Функция comment_form() в WordPress

Функция comment_form() выводит форму для комментариев, которую можно использовать в шаблоне. Эта функция позволяет вам настроить поля и строки формы с помощью массива аргументов $args, который передается функции. Вы также можете использовать фильтр comment_form_default_fields, чтобы изменить стандартные поля: добавлять новые или удалять существующие. Все поля также обрабатываются по отдельным фильтрам, где вы можете вносить изменения.

Хуки функции

Вот некоторые важные хуки, которые можно использовать с функцией 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

Возвращаемое значение

Функция не возвращает ничего (null), если она была вызвана корректно.

Применение функции comment_form()

Аргументы функции

Функция принимает два параметра:

  1. $args (array) - необязательный массив аргументов.

    • fields (array) - стандартные поля комментариев. Можете изменить их с помощью фильтра comment_form_default_fields.

      • author (string) - HTML-код поля для имени автора комментария.
      • email (string) - HTML-код поля для электронной почты автора комментария.
      • url (string) - HTML-код поля для URL-адреса автора комментария.
      • cookies (string) - HTML-код поля для согласия на использование cookie.
    • comment_field (string) - HTML-код поля для текста комментария.

    • must_log_in (string) - HTML-сообщение для пользователей, которые должны войти, чтобы оставить комментарий.

    • logged_in_as (string) - HTML-сообщение для пользователей, которые уже вошли в систему.

    • comment_notes_before (string) - сообщения, отображаемые перед полями комментариев.

    • comment_notes_after (string) - сообщения, отображаемые после поля для текста комментария.

    • action (string) - URL, куда будет отправлена форма комментария.

    • id_form (string) - ID формы комментариев.

    • id_submit (string) - ID кнопки отправки комментария.

    • class_container (string) - класс контейнера формы комментариев.

    • class_form (string) - класс самой формы комментариев.

    • class_submit (string) - класс кнопки отправки комментария.

    • name_submit (string) - имя кнопки отправки комментария.

    • title_reply (string) - текст для кнопки "Ответить".

    • format (string) - формат формы комментариев (может быть 'xhtml' или 'html5').

  2. $post (int|WP_Post) - ID поста или объект WP_Post, для которого будет сгенерирована форма. По умолчанию используется текущий пост.

Примеры использования

Изменение порядка полей

Вы можете изменить порядок полей в форме, используя фильтр comment_form_fields. Вот пример, как переместить текстовое поле комментария после полей имени, электронной почты и URL:

add_filter('comment_form_fields', 'kama_reorder_comment_fields');

function kama_reorder_comment_fields( $fields ) {
    // Желательный порядок полей
    $myorder = ['author', 'email', 'url', 'comment'];

    $new_fields = [];
    foreach ($myorder as $key) {
        $new_fields[$key] = $fields[$key];
        unset($fields[$key]);
    }

    return array_merge($new_fields, $fields);
}

Задание всех стандартных настроек

$defaults = [
    'fields' => [
        'author' => '

', 'email' => '', 'url' => '

' ], 'comment_field' => '

', 'label_submit' => __('Отправить комментарий'), ]; comment_form($defaults);

Изменение некоторых полей формы комментариев

$comments_args = [
    'label_submit' => 'Отправить',
    'title_reply' => 'Напишите ответ или комментарий',
    'comment_notes_after' => '',
    'comment_field' => '


', ]; comment_form($comments_args);

Ввод и вывод кода функции comment_form()

Функция comment_form() определена в файле wp-includes/comment-template.php. Она обрабатывает все вышеуказанные параметры и выводит HTML-код формы для комментариев. Этот код включает в себя обработку поля для ввода имени, адреса электронной почты, URL и текстового сообщения.

Функция comment_form() предоставляет возможность встроить базовую функциональность комментариев в ваш сайт на WordPress, что позволяет пользователям взаимодействовать с вашим контентом.

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *