The comments_pre_query WordPress PHP filter allows you to modify the comments data before the query takes place.
Usage
add_filter('comments_pre_query', 'your_function_name', 10, 2); function your_function_name($comment_data, $query) { // your custom code here return $comment_data; }
Parameters
$comment_data
(array|int|null) – Return an array of comment data to short-circuit WP’s comment query, the comment count as an integer if$this->query_vars['count']
is set, or null to allow WP to run its normal queries.$query
(WP_Comment_Query) – The WP_Comment_Query instance, passed by reference.
More information
See WordPress Developer Resources: comments_pre_query
Examples
Modify comments based on a specific condition
In this example, we will remove comments containing a specific word.
add_filter('comments_pre_query', 'filter_comments_by_word', 10, 2); function filter_comments_by_word($comment_data, $query) { $filtered_comments = array(); if (is_array($comment_data)) { foreach ($comment_data as $comment) { if (strpos($comment->comment_content, 'specific_word') === false) { $filtered_comments[] = $comment; } } } return $filtered_comments; }