Документация WordPress
wp_handle_comment_submission
Функция wp_handle_comment_submission()
является ключевой в обработке комментариев в WordPress. Выполняет проверку введённых данных, обработку ошибок и валидацию перед добавлением комментария в базу данных.
wp_handle_comment_submission( $comment_data, $allow_unfiltered = false );
Аргументы функции
$comment_data
(массив, обязательный) – массив данных, содержащий информацию о комментарии.- Обычно передаётся
$_POST
, содержащий поляcomment
,author
,email
,url
и другие стандартные поля.
- Обычно передаётся
$allow_unfiltered
(логический, необязательный,false
по умолчанию) – разрешает администраторам публиковать комментарии без фильтрации контента.
Как работает функция?
- Валидация входных данных:
- Проверяет, переданы ли данные
$_POST['comment']
. - Осуществляет базовую защиту от спама и SQL-инъекций.
- Проверяет обязательные поля (
comment
,author
,email
).
- Проверяет, переданы ли данные
- Проверка комментариев на дублирование:
- Использует встроенные механизмы WordPress для предотвращения повторного добавления одинаковых комментариев.
- Фильтрация и защита:
- Комментарии проходят через
wp_filter_comment()
перед сохранением. - Если
allow_unfiltered == false
, то применяется строгая фильтрация данных.
- Комментарии проходят через
- Сохранение комментария в базе данных:
- После успешной проверки создаётся запись в
wp_comments
. - Генерируется
comment_ID
. - Вызываются соответствующие хуки (
wp_insert_comment
,comment_post
, и др.).
- После успешной проверки создаётся запись в
- Обработка ошибок:
- Если комментарий не прошёл проверку, функция вернёт объект
WP_Error
с соответствующим кодом ошибки.
- Если комментарий не прошёл проверку, функция вернёт объект
Возвращаемое значение
- В случае успеха возвращает массив данных добавленного комментария.
- В случае ошибки возвращает объект
WP_Error
.
Пример использования
Простая обработка формы комментария:
Использование в кастомных разработках
Если вам нужно кастомизировать обработку комментариев, можно:
- Использовать
pre_comment_on_post
для предварительной обработки. - Фильтровать контент через
preprocess_comment
. - Применять
comment_post
для выполнения дополнительных действий после добавления комментария.
Функция wp_handle_comment_submission()
– это встроенный инструмент из коробки WordPress для обработки комментариев, включающий в себя валидацию, защиту от спама и автоматическое сохранение в базе данных. Она может быть изменена с помощью хуков и фильтров, что делает её гибким инструментом для разработчиков.
comments
Функции WordPress
- get_comment_link
- get_comment_text
- wp_new_comment
- wp_check_comment_data_max_lengths
- wp_get_comment_status
- wp_delete_comment
- comments_template
- comments_open
- get_comment_author_email
- get_comment_pages_count
- comment_text
- comment_form
- cancel_comment_reply_link
- wp_update_comment_count
- wp_update_comment
- get_comments_number
- wp_list_comments
- wp_insert_comment
- get_comment_type
- get_comments