Languages:
English •
中文(简体) •
日本語
(Add your language)
Description
Retrieve a list of comments.
Usage
<?php get_comments( $args ); ?>
Default Usage
<?php $args = array(
'author_email' => '',
'author__in' => '',
'author__not_in' => '',
'include_unapproved' => '',
'fields' => '',
'ID' => '',
'comment__in' => '',
'comment__not_in' => '',
'karma' => '',
'number' => '',
'offset' => '',
'orderby' => '',
'order' => 'DESC',
'parent' => '',
'post_author__in' => '',
'post_author__not_in' => '',
'post_ID' => '', // ignored (use post_id instead)
'post_id' => 0,
'post__in' => '',
'post__not_in' => '',
'post_author' => '',
'post_name' => '',
'post_parent' => '',
'post_status' => '',
'post_type' => '',
'status' => 'all',
'type' => '',
'type__in' => '',
'type__not_in' => '',
'user_id' => '',
'search' => '',
'count' => false,
'meta_key' => '',
'meta_value' => '',
'meta_query' => '',
'date_query' => null, // See WP_Date_Query
);
get_comments( $args ); ?>
Parameters
- $author_email
- (string) (optional) Comment author email address.
- Default: empty
- $author__in
- (array) (optional) Array of author IDs to include comments for.
- Default: empty
- $author__not_in
- (array) (optional) Array of author IDs to exclude comments for.
- Default: empty
- $comment__in
- (array) (optional) Array of comment IDs to include.
- Default: empty
- $comment__not_in
- (array) (optional) Array of comment IDs to exclude.
- Default: empty
- $count
- (bool) (optional) Whether to return a comment count (true) or array of comment objects (false).
- Default: false
- $date_query
- (array) (optional) Date query clauses to limit comments by. See WP_Date_Query.
- Default: null
- $fields
- (string) (optional) Comment fields to return. Accepts 'ids' for comment IDs only or empty for all fields.
- Default: empty
- $ID
- (int) (optional) Currently unused.
- Default: None
- $include_unapproved
- (array) (optional) Array of IDs or email addresses of users whose unapproved comments will be returned by the query regardless of $status.
- Default: empty
- $karma
- (int) (optional) Karma score to retrieve matching comments for.
- Default: empty
- $meta_key
- (string) (optional) Include comments with a matching comment meta key.
- Default: empty
- $meta_value
- (string) (optional) Include comments with a matching comment meta value. Requires $meta_key to be set.
- Default: empty
- $meta_query
- (array) (optional) Meta query clauses to limit retrieved comments by. See WP_Meta_Query.
- Default: empty
- $number
- (int) (optional) Maximum number of comments to retrieve.
- Default: null (no limit)
- $offset
- (int) (0) Number of comments to offset the query. Used to build LIMIT clause.
- Default: None
- $orderby
- (string_array) (optional) Comment field or array of comment fields. To use 'meta_value' or 'meta_value_num', $meta_key must also be defined. To sort by a specific $meta_query clause, use that clause's array key.
- comment_agent
- comment_approved
- comment_author
- comment_author_email
- comment_author_IP
- comment_author_url
- comment_content
- comment_date
- comment_date_gmt
- comment_ID
- comment_karma
- comment_parent
- comment_post_ID
- comment_type
- user_id
- meta_value
- meta_value_num
- the value of $meta_key
- and the array keys of $meta_query
- Also accepts false, an empty array, or 'none' to disable ORDER BY clause
- Default: comment_date_gmt
- $order
- (string) (optional) How to order retrieved comments. Accepts
- ASC
- DESC
.
- Default: 'DESC'.
- $parent
- (int) (optional) Parent ID of comment to retrieve children of.
- Default: empty
- $post_author__in
- (array) (optional) Array of author IDs to retrieve comments for.
- Default: empty
- $post_author__not_in
- (array) (optional) Array of author IDs *not* to retrieve comments for.
- Default: empty
- $post_ID
- (int) (optional) Currently unused
- Default: None
- $post_id
- (int) (optional) Limit results to those affiliated with a given post ID.
- Default: 0
- $post__in
- (array) (optional) Array of post IDs to include affiliated comments for.
- Default: empty
- $post__not_in
- (array) (optional) Array of post IDs to exclude affiliated comments for.
- Default: empty
- $post_author
- (int) (optional) Comment author ID to limit results by.
- Default: empty
- $post_status
- (string) (optional) Post status to retrieve affiliated comments for.
- Default: empty
- $post_type
- (string) (optional) Post type to retrieve affiliated comments for.
- Default: empty
- $post_name
- (string) (optional) Post name to retrieve affiliated comments for.
- Default: empty
- $post_parent
- (int) (optional) Post parent ID to retrieve affiliated comments for.
- Default: empty
- $search
- (string) (optional) Search term(s) to retrieve matching comments for.
- Default: empty
- $status
- (string) (optional) Comment status to limit results by. Accepts 'hold', 'approve', 'all', or a custom comment status.
- Default: all
- $type
- (string_array) (optional) Include comments of a given type, or array of types. Accepts 'comment', 'pings' (includes 'pingback' and 'trackback'), or any custom type string.
- Default: empty
- $type__in
- (array) (optional) Include comments from a given array of comment types.
- Default: empty
- $type__not_in
- (array) (optional) Exclude comments from a given array of comment types.
- Default: empty
- $user_id
- (int) (optional) Include comments for a specific user ID.
- Default: empty
Returns
- (Object)
- Comment fields with the following properties (or an empty array if there are no comments):
- comment_ID
- (integer) The comment ID
- comment_post_ID
- (integer) The ID of the post/page that this comment responds to
- comment_author
- (string) The comment author's name
- comment_author_email
- (string) The comment author's email
- comment_author_url
- (string) The comment author's webpage
- comment_author_IP
- (string) The comment author's IP
- comment_date
- (string) The datetime of the comment (YYYY-MM-DD HH:MM:SS)
- comment_date_gmt
- (string) The GMT datetime of the comment (YYYY-MM-DD HH:MM:SS)
- comment_content
- (string) The comment's content
- comment_karma
- (integer) The comment's karma
- comment_approved
- (string) The comment approval level (0, 1 or "spam")
- comment_agent
- (string) The commenter's user agent (browser, operating system, etc.)
- comment_type
- (string) The comment's type if meaningfull (pingback|trackback), empty for normal comments
- comment_parent
- (string) The parent comment's ID for nested comments (0 for top level)
- user_id
- (integer) The comment author's ID if s/he is registered (0 otherwise)
Examples
<?php
$comments = get_comments('post_id=15');
foreach($comments as $comment) :
echo($comment->comment_author);
endforeach;
?>
Show last 5 unapproved comments:
<?php
$args = array(
'status' => 'hold',
'number' => '5',
'post_id' => 1, // use post_id, not post_ID
);
$comments = get_comments($args);
foreach($comments as $comment) :
echo($comment->comment_author . '<br />' . $comment->comment_content);
endforeach;
?>
Show comment counts of a post:
<?php
$args = array(
'post_id' => 1, // use post_id, not post_ID
'count' => true //return only the count
);
$comments = get_comments($args);
echo $comments
?>
Show comment counts of a user:
<?php
$args = array(
'user_id' => 1, // use user_id
'count' => true //return only the count
);
$comments = get_comments($args);
echo $comments
?>
Show comments of a user:
<?php
$args = array(
'user_id' => 1, // use user_id
);
$comments = get_comments($args);
foreach($comments as $comment) :
echo($comment->comment_author . '<br />' . $comment->comment_content);
endforeach;
?>
Get comments from last 4 weeks:
$args = array(
'date_query' => array(
'after' => '4 week ago',
'before' => 'tomorrow',
'inclusive' => true,
),
);
$posts = get_comments($args);
foreach ($posts as $post) {
// Output comments etc here
}
Delete duplicate comments (same author and content):
<?php
// get all approved comments with empty number arg
$all_comments=get_comments( array('status' => 'approve', 'number'=>'') );
// array to hold comment ids that are dupes
$comment_ids_to_delete=array();
foreach($all_comments as $k=>$c)
{
$kk=($k-1); // the previous comments index in all_comments array
$pc=$all_comments[$kk]; // the previous comment object
// if comment authors the same, and comment_content the same add to deletions array
if($pc->comment_author == $c->comment_author && $pc->comment_content == $c->comment_content) {
$comment_ids_to_delete[]=$pc->comment_ID; // previous comment id
}
}
// delete the comment by id
foreach($comment_ids_to_delete as $k=>$v):
wp_delete_comment($v);
endforeach;
?>
Source File
get_comments() is located in wp-includes/comment.php
.
Related