get_comments()
— это мощная функция WordPress, которая позволяет получать список комментариев по определённым параметрам. Эта функция может возвращать как массив комментариев, так и количество комментариев, если указать соответствующие параметры.
Функция get_comments()
возвращает список комментариев, которые могут относиться к отдельной записи (посту) или ко всему блогу. Функция поддерживает множество аргументов, позволяющих фильтровать комментарии по различным критериям, таким как автор, дата, статус и многое другое.
get_comments( string|array $args = '' ): WP_Comment[]|int[]|int
Параметры $args
для функции get_comments()
author_email
(string) — Email автора комментария.author__in
(array) — Массив ID авторов, комментарии которых нужно получить.author__not_in
(array) — Массив ID авторов, комментарии которых нужно исключить.comment__in
(array) — Массив ID комментариев, которые нужно получить.comment__not_in
(array) — Массив ID комментариев, которые нужно исключить.count
(bool) — Еслиtrue
, вернёт количество комментариев, а не сами комментарии.include_unapproved
(array) — Массив email или ID пользователей, чьи неутверждённые комментарии будут включены.karma
(int) — Получить комментарии с определённым числом кармы.parent
(int) — ID комментария, чьи дочерние комментарии нужно получить.parent__in
(array) — Массив ID комментариев, чьи дочерние комментарии нужно получить.parent__not_in
(array) — Массив ID комментариев, чьи дочерние комментарии нужно исключить.post_author
(int) — ID автора записи, чьи комментарии нужно получить.post_author__in
(array) — Массив ID авторов записей, чьи комментарии нужно получить.post_author__not_in
(array) — Массив ID авторов записей, чьи комментарии нужно исключить.post_id
(int) — ID записи, чьи комментарии нужно получить.post__in
(array) — Массив ID записей, чьи комментарии нужно получить.post__not_in
(array) — Массив ID записей, чьи комментарии нужно исключить.post_status
(string) — Статус записи для фильтрации комментариев (например,'publish'
).post_type
(string) — Тип записи для фильтрации комментариев (например,'page'
).post_name
(string) — Ярлык записи для фильтрации комментариев.post_parent
(int) — ID родительской записи для фильтрации дочерних записей.search
(string) — Поисковый запрос по содержимому комментариев.status
(string) — Статус комментариев (например,'approve'
,'hold'
,'spam'
).orderby
(string|array) — Поле для сортировки комментариев. Возможные значения включают поля из таблицы комментариев или метаполя.order
(string) — Порядок сортировки:'ASC'
или'DESC'
.number
(int) — Максимальное количество комментариев, которое нужно получить.offset
(int) — Смещение, которое нужно применить при запросе комментариев (для пагинации).no_found_rows
(bool) — Отключает подсчёт общего количества комментариев (ускоряет запросы).meta_key
(string) — Ключ метаполя для фильтрации комментариев.meta_value
(string) — Значение метаполя для фильтрации комментариев (требуетmeta_key
).meta_query
(array) — Массив для сложных запросов по метаданным (аналогmeta_query
вWP_Query
).date_query
(array) — Фильтр по дате комментариев (использует WP_Date_Query).fields
(string) — Поля, которые должны быть возвращены (например,'ids'
для ID комментариев).type
(string|array) — Тип комментариев, который нужно получить (например,'comment'
или'pingback'
).type__in
(array) — Массив типов комментариев, которые нужно получить.type__not_in
(array) — Массив типов комментариев, которые нужно исключить.user_id
(int) — ID пользователя, чьи комментарии нужно получить.hierarchical
(string|bool) — Возвращать ли вложенные комментарии в виде иерархии. Может быть'threaded'
,'flat'
, илиfalse
.update_comment_meta_cache
(bool) — Нужно ли обновить мета-кэш комментариев.update_comment_post_cache
(bool) — Нужно ли обновить мета-кэш записей, к которым относятся комментарии.
Возвращаемое значение
- WP_Comment[]: Массив объектов
WP_Comment
, содержащих данные о комментариях. - int[]: Массив идентификаторов комментариев, если в аргументах указано, что необходимо возвращать только ID.
- int: Количество комментариев, если передан аргумент
count => true
.
Пример 1: Получение количества комментариев для записи
Этот пример показывает, как можно получить количество комментариев для конкретной записи с помощью параметра count
.
$args = array(
'post_id' => 1, // ID записи, для которой нужно получить комментарии
'count' => true // Возвращает только количество комментариев
);
$comments_count = get_comments( $args );
echo $comments_count;
Пример 2: Получение комментариев за последние 4 недели
В этом примере используются параметры запроса по дате, чтобы получить комментарии, оставленные за последние 4 недели.
$args = array(
'date_query' => array(
'after' => '4 weeks ago',
'before' => 'tomorrow',
'inclusive' => true,
),
);
$comments = get_comments( $args );
foreach ( $comments as $comment ) {
echo $comment->comment_author . '<br />' . $comment->comment_content;
}
Пример 3: Получение комментариев для конкретной записи
Этот пример показывает, как можно получить все комментарии для записи с ID 15.
$comments = get_comments( array( 'post_id' => 15 ) );
foreach ( $comments as $comment ) {
echo $comment->comment_author . '<br />' . $comment->comment_content;
}
Пример 4: Получение последних 5 неподтверждённых комментариев
Этот пример показывает, как получить последние 5 неподтверждённых комментариев для записи с ID 1.
$args = array(
'status' => 'hold', // Статус комментария - неподтверждённые
'number' => 5, // Количество комментариев для возврата
'post_id' => 1, // ID записи
);
$comments = get_comments( $args );
foreach ( $comments as $comment ) {
echo $comment->comment_author . '<br />' . $comment->comment_content;
}
Пример 5: Получение комментариев пользователя
Этот пример демонстрирует, как получить комментарии, оставленные пользователем с ID 1.
$args = array(
'user_id' => 1, // ID пользователя
);
$comments = get_comments( $args );
foreach ( $comments as $comment ) {
echo $comment->comment_author . '<br />' . $comment->comment_content;
}
Заключение
Функция get_comments()
предоставляет гибкий способ получения комментариев в WordPress, позволяя фильтровать их по множеству критериев. Важно правильно использовать параметры для повышения производительности и точности результатов, особенно при работе с большими наборами данных.