Обработка Отправки Комментария в WordPress
Функция wp_handle_comment_submission() начинает обрабатывать комментарий, который обычно отправляется через форму комментария на странице wp-comments-post.php.
Основная Информация
Эта функция ожидает, что данные будут без дополнительных слэшей (unslashed), в отличие от функций, таких как wp_new_comment(), которые дают возможность работать с данными, содержащими слэши.
Использование
Функция используется для обработки комментариев следующим образом:
wp_handle_comment_submission( $comment_data );
Параметры Функции
$comment_data (обязательный)
Это массив, содержащий данные комментария. Вот основные ключи этого массива:
- comment_post_ID (строка|целое число): ID поста, к которому относится комментарий.
- author (строка): Имя автора комментария.
- email (строка): Email автора комментария.
- url (строка): URL автора комментария.
- comment (строка): Содержимое комментария.
- comment_parent (строка|целое число): ID родительского комментария, если таковой имеется.
- _wp_unfiltered_html_comment (строка): Проверочное значение, позволяющее использовать необработанный HTML.
Примеры
Пример 1: Добавление комментария через AJAX
Если вы хотите добавить комментарий с использованием стандартных полей и произвольных полей через AJAX, используйте следующий код в функции обратного вызова AJAX:
add_action( 'wp_ajax_myaddcomment', 'myaddcomment_handler' );
function myaddcomment_handler() {
// Пытаемся сохранить комментарий в базе данных
$comment = wp_handle_comment_submission( wp_unslash( $_POST ) );
// Обработка ошибок при добавлении комментария
if ( is_wp_error( $comment ) ) {
wp_send_json_error( $comment->get_error_message() );
}
// Комментарий успешно добавлен - все в порядке!
// Обработка дополнительных полей
$foo = (int) $_POST['foo'];
$bar = (int) $_POST['bar'];
if ( $foo ) {
update_comment_meta( $comment->comment_ID, 'foo', $foo );
}
if ( $bar ) {
update_comment_meta( $comment->comment_ID, 'bar', $bar );
}
// Возвращаем результат
wp_send_json_success( $comment );
}
Возвращаемое Значение
Функция возвращает объект WP_Comment при успешной операции или объект WP_Error в случае ошибки.
Изменения
Функция была введена в версии 4.4.0.
Связанные Функции
Вот некоторые функции, которые могут быть полезны при работе с комментариями:
cancel_comment_reply_link()comment_form()get_comments()wp_new_comment()wp_delete_comment()
Эти функции помогут вам более гибко управлять комментариями на сайте WordPress.