Своя форма для отправки комментария в WordPress

WordPress уже содержит стандартную форму для добавления комментариев и средства их отображения. Однако их визуальное оформление, как правило, оставляет желать лучшего. Кроме того стандартную форму очень сложно настроить.

Стандартная форма

Поэтому, при создании тем лучше всего создать свою форму для комментариев.

Создание шаблона комментариев

Для начала необходимо создать файл шаблона, который будет осуществлять отображение комментариев и формы для их добавления.

Этот файл обязательно должен иметь название comments.php.

В начале этого файла осуществляем проверку возможности оставлять комментарии на данной странице и выводим список уже имеющихся комментариев (если они есть).

Одновременно с этим создаём шаблон для визуального отображения комментариев и формы.

Каркас формы отправки комментария

Данная форма должна предусматривать два варианта отображения.

  • Для авторизованных пользователей сайта (зарегистрированных и вошедших на сайт);
  • Для неавторизованных пользователей (незарегистрированных или не вошедших на сайт).

Проверка осуществляется стандартным способом посредством глобальной переменной $user_ID

Также для авторизованных пользователей можно добавить соответствующий функционал. Например, Отображение имени пользователя («Вы вошли как») и возможность выхода  из системы.

Форма отправки комментария

Теперь можно приступать непосредственно к созданию самой формы. Вначале рассмотрим вариант для неавторизованных пользователей, как более сложный.

Сверстаем макет формы.

Своя форма

Значения атрибутов name и id у полей ввода обязательно должны быть именно такими как приведено в примере. Иначе WordPress не сможет корректно их интерпретировать.

Далее укажем в качестве обработчика формы, файл ядра WordPress, который отвечает за добавление комментариев. Добавляем необходимые скрытые служебные поля с помощью функции comment_id_fields(), чтобы форма была полностью правильно обработана WordPress.

После этого остаётся только переопределить стандартную форму отправки комментариев той, что была только что создана, при помощи функции do_action.

Теперь форма полностью готова к работе.

Вариант для авторизованных пользователей создать гораздо проще.

Для этого в форме необходимо только одно единственное поле – текст комментария. Всю остальную информацию для пользователя WordPress добавит самостоятельно, используя свои внутренние механизмы.

Своя форма для авторизованных пользователей

Ниже приведён код каркаса, который уже содержит оба варианта формы.

Описанный принцип реализации собственной формы отправки комментария является общим и применяется (с необходимыми дополнениями) при создании форм любой сложности.