## Функция get_comment()
Функция get_comment() позволяет получать данные о комментарии по его ID или объекту комментария.
### Основные особенности
- Если вы передаете объект комментария, его данные будут кэшироваться и возвращаться после применения фильтра.
- Если комментарий пустой, то будет использоваться глобальная переменная комментария, если она установлена.
### Использование
- **Функции:** WP_Comment(), WP_Comment::get_instance()
- **Используется в:** get_comment_text(), get_comment_author()
- **Производительность:**
- 1 вызов — 0.000436 сек (быстро)
- 50000 вызовов — 0.38 сек (очень быстро)
### Хуки
Функция использует хук get_comment, который позволяет добавлять свои изменения в процессе получения комментария.
### Возврат
Функция возвращает объект WP_Comment, массив или null, в зави��имости от указанного параметра $output.
### Синтаксис
```php
get_comment( $comment, $output );
$comment— это ID комментария, объектWP_Commentили строка с его идентификатором (по умолчаниюnull).$output— тип возвращаемых данных:OBJECT,ARRAY_A(ассоциативный массив) илиARRAY_N(индексированный массив) (по умолчаниюOBJECT).
Примеры
Пример 1: Получение комментария по ID
$comm_id = 11612;
$comm = get_comment( $comm_id );
print_r( $comm );
Результатом выполнения будет объект WP_Comment, содержащий данные о комментарии:
WP_Comment Object
(
[comment_ID] => 11612
[comment_post_ID] => 3477
[comment_author] => Mseo
[comment_author_email] => [email protected]
[comment_author_url] => http://maeo.com
[comment_author_IP] => 95.79.52.2
[comment_date] => 2015-09-01 16:28:33
[comment_date_gmt] => 2015-09-01 11:28:33
[comment_content] => Привет, код для вывода даты комментария
[comment_karma] => 0
[comment_approved] => 1
[comment_agent] => Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 ...
[comment_type] => comment
[comment_parent] => 0
[user_id] => 0
// Другие защищенные поля
)
Пример 2: Получение имени автора комментария
$comm_id = 27;
$comment = get_comment( $comm_id );
$name = esc_html( $comment->comment_author);
Здесь мы получаем имя автора комментария с ID 27 и обрабатываем его для безопасного отображения.
Пример 3: Получение данных в виде ассоциативного массива
$comm_id = 27;
$comment = get_comment( $comm_id, ARRAY_A );
$comment_author_name = esc_html( $comment['comment_author']);
В этом примере мы получаем данные комментария как ассоциативный массив, чтобы удобно работать с ними.
Примечания
global $comment;используется для получения глобального объекта комментария, если он доступен.
Изменения
Функция была добавлена в версии 2.0.0 WordPress.
Код функции get_comment
function get_comment( $comment = null, $output = OBJECT ) {
if ( empty( $comment ) && isset( $GLOBALS['comment'] ) ) {
$comment = $GLOBALS['comment'];
}
if ( $comment instanceof WP_Comment ) {
$_comment = $comment;
} elseif ( is_object( $comment ) ) {
$_comment = new WP_Comment( $comment );
} else {
$_comment = WP_Comment::get_instance( $comment );
}
if ( ! $_comment ) {
return null;
}
/**
* Срабатывает после получения комментария.
*
* @since 2.3.0
* @param WP_Comment $_comment Данные о комментарии.
*/
$_comment = apply_filters( 'get_comment', $_comment );
if ( OBJECT === $output ) {
return $_comment;
} elseif ( ARRAY_A === $output ) {
return $_comment->to_array();
} elseif ( ARRAY_N === $output ) {
return array_values( $_comment->to_array() );
}
return $_comment;
}