The pre_get_comments WordPress PHP action fires before comments are retrieved, allowing you to modify the WP_Comment_Query instance.
Usage
add_action('pre_get_comments', 'your_custom_function');
function your_custom_function($query) {
// your custom code here
}
Parameters
$query(WP_Comment_Query): Current instance of WP_Comment_Query (passed by reference).
More information
See WordPress Developer Resources: pre_get_comments
Examples
Exclude comments from a specific user
This code snippet will exclude comments from a specific user by setting the user ID in the query.
add_action('pre_get_comments', 'exclude_user_comments');
function exclude_user_comments($query) {
$user_id = 5; // User ID to exclude
$query->set('user_id', -$user_id);
}
Display only approved comments
This code snippet will display only approved comments by modifying the comment status.
add_action('pre_get_comments', 'show_only_approved_comments');
function show_only_approved_comments($query) {
$query->set('status', 'approve');
}
Order comments by date
This code snippet will order comments by date in descending order.
add_action('pre_get_comments', 'order_comments_by_date_desc');
function order_comments_by_date_desc($query) {
$query->set('orderby', 'comment_date');
$query->set('order', 'DESC');
}
Limit comments per page
This code snippet will limit the number of comments displayed per page.
add_action('pre_get_comments', 'limit_comments_per_page');
function limit_comments_per_page($query) {
$query->set('number', 10); // Limit to 10 comments per page
}
Exclude comments with specific words
This code snippet will exclude comments containing specific words by modifying the search parameter.
add_action('pre_get_comments', 'exclude_comments_with_specific_words');
function exclude_comments_with_specific_words($query) {
$words_to_exclude = array('spam', 'troll');
$search = '';
foreach ($words_to_exclude as $word) {
$search .= "comment_content NOT LIKE '%$word%' AND ";
}
$search = rtrim($search, " AND ");
$query->set('search', $search);
}