If you mean the comments in comments_template()
then you can use the new comments_template_query_args
filter that was added with ticket #34442 in version 4.5:
/**
* Filters the arguments used to query comments in comments_template().
*
* @since 4.5.0
*
* @see WP_Comment_Query::__construct()
*
* @param array $comment_args {
* Array of WP_Comment_Query arguments.
*
* @type string|array $orderby Field(s) to order by.
* @type string $order Order of results. Accepts 'ASC' or 'DESC'.
* @type string $status Comment status.
* @type array $include_unapproved Array of IDs or email addresses whose unapproved comments
* will be included in results.
* @type int $post_id ID of the post.
* @type bool $no_found_rows Whether to refrain from querying for found rows.
* @type bool $update_comment_meta_cache Whether to prime cache for comment meta.
* @type bool|string $hierarchical Whether to query for comments hierarchically.
* @type int $offset Comment offset.
* @type int $number Number of comments to fetch.
* }
*/
$comment_args = apply_filters( 'comments_template_query_args', $comment_args );
$comment_query = new WP_Comment_Query( $comment_args );
Example
Here’s an example where we target non-threaded comments:
/**
* Order non-threaded comments by comment author, in the (main) comments template
*/
add_filter( 'comments_template_query_args', function( $comment_args )
{
// Ignore threaded comments
if( isset( $comment_args['hierarchical'] )
&& 'threaded' === $comment_args['hierarchical']
)
return $comment_args;
// Our modifications
$comment_args['orderby'] = 'comment_author';
$comment_args['order'] = 'ASC';
return $comment_args;
} );