Функция wp_get_current_commenter()
в WordPress используется для получения данных текущего комментатора на основе его cookies. Эта функция полезна при отображении информации о пользователе, который уже оставлял комментарии на сайте, или для предварительного заполнения формы комментариев.
wp_get_current_commenter(): array
Функция возвращает массив с данными текущего комментатора, извлеченными из его cookies. Если cookies не установлены, функция вернет пустой массив.
Возвращаемое значение
Функция возвращает ассоциативный массив с тремя ключами:
'comment_author'
(string) — Имя автора комментария.'comment_author_email'
(string) — Email автора комментария.'comment_author_url'
(string) — URL сайта автора комментария.
Если данные отсутствуют, значения по ключам будут пустыми строками.
Пример использования
Предположим, вы хотите отобразить приветственное сообщение для комментатора, если он уже оставлял комментарии на сайте. Вот пример использования функции wp_get_current_commenter()
:
function greet_current_commenter() {
$commenter = wp_get_current_commenter();
// Проверяем, есть ли данные комментатора
if ( ! empty( $commenter['comment_author'] ) ) {
echo 'Добро пожаловать обратно, ' . esc_html( $commenter['comment_author'] ) . '!';
} else {
echo 'Добро пожаловать, новый посетитель!';
}
}
// Вызываем функцию в нужном месте шаблона
greet_current_commenter();
В этом примере функция greet_current_commenter()
проверяет наличие имени комментатора в cookies и отображает соответствующее сообщение. Если имя комментатора найдено, выводится сообщение «Добро пожаловать обратно, [Имя]!», если нет — «Добро пожаловать, новый посетитель!».
Дополнительные параметры
Хотя wp_get_current_commenter()
не принимает аргументов, важно понимать, что она зависит от наличия cookies на стороне клиента. Если cookies отключены или не установлены, функция не сможет вернуть данные.
Возвращает
Array
(
[comment_author] => John Doe
[comment_author_email] => [email protected]
[comment_author_url] => http://example.com
)
Связанные функции
wp_set_comment_cookies()
: Устанавливает cookies для комментатора после публикации комментария.get_comment_author()
: Возвращает имя автора комментария на основе ID комментария.
Вывод полей формы комментирования
Этот пример показывает, как вывести поля «Имя», «Почта» и «Сайт» с предварительным заполнением данных, если они уже есть в cookies:
$commenter = wp_get_current_commenter();
$req = get_option( 'require_name_email' ) ? ' <span class="required">*</span>' : '';
$aria_req = $req ? " aria-required='true'" : '';
$html_req = $req ? " required='required'" : '';
$fields = [
'author' => '<p class="comment-form-author">' . '<label for="author">Имя' . $req . '</label> ' .
'<input id="author" name="author" type="text" value="' . esc_attr( $commenter['comment_author'] ) . '" size="30" maxlength="245"' . $aria_req . $html_req . ' /></p>',
'email' => '<p class="comment-form-email"><label for="email">Email' . $req . '</label> ' .
'<input id="email" name="email" type="text" value="' . esc_attr( $commenter['comment_author_email'] ) . '" size="30" maxlength="100" aria-describedby="email-notes"' . $aria_req . $html_req . ' /></p>',
'url' => '<p class="comment-form-url"><label for="url">Сайт</label> ' .
'<input id="url" name="url" type="text" value="' . esc_attr( $commenter['comment_author_url'] ) . '" size="30" maxlength="200" /></p>',
];
foreach( $fields as $field ){
echo $field;
}
В этом примере данные из cookies используются для предварительного заполнения полей формы комментариев. Если комментатор ранее оставлял комментарий и его данные были сохранены в cookies, они автоматически отобразятся в соответствующих полях формы, что упрощает процесс повторного комментирования для пользователя.
Заключение
Функция wp_get_current_commenter()
является удобным инструментом для работы с данными комментаторов на сайте. Она помогает сохранять персонализированный опыт для пользователей, возвращающихся на ваш сайт, и может быть полезна для предварительного заполнения формы комментариев.