Как использовать функцию wp_get_current_commenter() для получения данных комментатора

WP_GET_CURRENT_COMMENTER() │ WP 2.0.4

Функция wp_get_current_commenter() помогает получить имя, электронную почту и URL текущего комментатора из куки. Эти данные используются в форме комментариев.

Как работают куки

Данные извлекаются из куки, которые добавляются, когда неавторизованный пользователь оставляет комментарий. Убедитесь, что куки уже были обработаны перед получением данных. Иногда имеет смысл проверять полученные данные.

Хуки функции

Функция использует хук wp_get_current_commenter, который позволяет изменять полученные данные.

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

Функция возвращает массив с данными комментатора:

Array(
    [comment_author]       => "Имя"
    [comment_author_email] => "email@example.com"
    [comment_author_url]   => "https://example.com/mypage"
)

Применение

Вы можете вызвать функцию следующим образом:

$commenter = wp_get_current_commenter();

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

Пример 1: Получение значений формы комментариев для неавторизованного пользователя

Этот пример показывает, как получить данные комментатора, когда он заполняет форму комментария:

$commenter = wp_get_current_commenter();
print_r($commenter);
/*
Array(
    [comment_author]       => "Имя"
    [comment_author_email] => "email@example.com"
    [comment_author_url]   => "https://example.com/mypage"
)
*/

Пример 2: Отображение формы с данными комментатора

Следующий пример демонстрирует, как отобразить поля "Имя", "Email" и "Сайт" с данными комментатора:

// Получаем данные
$commenter = wp_get_current_commenter();

// Определяем обязательные поля
$req = get_option('require_name_email') ? ' *' : '';
$aria_req = $req ? " aria-required='true'" : '';
$html_req = $req ? " required='required'" : '';

// Определяем поля формы
$fields = [
    'author' => '

' . '' . '

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

' . '

', ]; // Отображаем поля foreach ($fields as $field) { echo $field; }

Примечания

  • Для обработки куки используйте функцию sanitize_comment_cookies().

Изменения

  • С версии 2.0.4 — функция была введена.

Код функции

Вот код функции wp_get_current_commenter():


function wp_get_current_commenter() {
// Куки должны уже быть обработаны.

$comment_author = '';
if (isset($_COOKIE['comment_author_' . COOKIEHASH])) {
    $comment_author = $_COOKIE['comment_author_' . COOKIEHASH];
}

$comment_author_email = '';
if (isset($_COOKIE['comment_author_email_' . COOKIEHASH])) {
    $comment_author_email = $_COOKIE['comment_author_email_' . COOKIEHASH];
}

$comment_author_url = '';
if (isset($_COOKIE['comment_author_url_' . COOKIEHASH])) {
    $comment_author_url = $_COOKIE['comment_author_url_' . COOKIEHASH];
}

/**
 * Фильтрует имя, email и URL текущего комментатора.
 *
 * @param array $comment_author_data {
 *     Массив с данными комментатора.
 *
 *     @type string $comment_author       Имя комментатора, или пустая строка.
 *     @type string $comment_author_email Электронная почта комментатора, или пустая строка.
 *     @type string $comment_author_url   URL комментатора, или пустая строка.
 * }
 */
return apply_filters('wp_get_current_commenter', compact('comment_author', 'comment_author_email', 'comment_author_url'));

}

Связанные функции

  • sanitize_comment_cookies()
  • wp_set_comment_cookies()
  • comment_form()
  • comment_author_email_link()
  • get_comments()

Эти функции могут быть полезны при работе с комментариями в WordPress.

Leave a Reply

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