The get_comment_statuses() WordPress PHP function retrieves all of the WordPress supported comment statuses.
Usage
$comment_statuses = get_comment_statuses();
This example retrieves all supported comment statuses and stores them in the $comment_statuses variable.
Parameters
- None
More information
See WordPress Developer Resources: get_comment_statuses()
Examples
Display Comment Statuses
This example displays a list of supported comment statuses.
$comment_statuses = get_comment_statuses();
foreach ($comment_statuses as $status => $label) {
echo "Status: {$status}, Label: {$label}<br>";
}
Count Comments by Status
This example counts the number of comments for each comment status.
$comment_statuses = get_comment_statuses();
foreach ($comment_statuses as $status => $label) {
$args = array(
'status' => $status,
'count' => true
);
$count = get_comments($args);
echo "Number of {$label} comments: {$count}<br>";
}
Check if a Status is Valid
This example checks if a given status is a valid comment status.
$status_to_check = 'approved';
$comment_statuses = get_comment_statuses();
if (array_key_exists($status_to_check, $comment_statuses)) {
echo "{$status_to_check} is a valid comment status.";
} else {
echo "{$status_to_check} is not a valid comment status.";
}
Filter Comments by Status
This example retrieves comments with a specific status and displays them.
$status_filter = 'spam';
$comment_statuses = get_comment_statuses();
if (array_key_exists($status_filter, $comment_statuses)) {
$args = array(
'status' => $status_filter
);
$comments = get_comments($args);
foreach ($comments as $comment) {
echo "Comment ID: {$comment->comment_ID}<br>";
}
} else {
echo "Invalid comment status.";
}
Add a Custom Status Label
This example adds a custom label to a comment status and displays the updated list of comment statuses.
$comment_statuses = get_comment_statuses();
$custom_status = 'unapproved';
$custom_label = 'Unapproved';
if (!array_key_exists($custom_status, $comment_statuses)) {
$comment_statuses[$custom_status] = $custom_label;
foreach ($comment_statuses as $status => $label) {
echo "Status: {$status}, Label: {$label}<br>";
}
} else {
echo "Status {$custom_status} already exists.";
}