Обработка отправки комментария в WordPress: функция wp_handle_comment_submission()

Обработка Отправки Комментария в 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.

Leave a Reply

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