The get_page_of_comment WordPress PHP filter calculates the page on which a specific comment appears.
Usage
add_filter('get_page_of_comment', 'your_custom_function', 10, 6);
function your_custom_function($page, $args, $original_args, $comment_id) {
// your custom code here
return $page;
}
Parameters
$page(int) – The calculated comment page.$args(array) – Arguments used to calculate pagination.$original_args(array) – Array of arguments passed to the function.$comment_id(int) – ID of the comment.
More information
See WordPress Developer Resources: get_page_of_comment
Examples
Change the number of comments per page
This example changes the number of comments displayed per page to 10.
add_filter('get_page_of_comment', 'change_comments_per_page', 10, 6);
function change_comments_per_page($page, $args, $original_args, $comment_id) {
$args['per_page'] = 10;
// Recalculate comment page
$page = ceil(($args['per_page'] - $comment_id) / $args['per_page']);
return $page;
}
Display comments in reverse order
This example displays comments in reverse order, so the newest comments appear on the first page.
add_filter('get_page_of_comment', 'reverse_comment_order', 10, 6);
function reverse_comment_order($page, $args, $original_args, $comment_id) {
$total_comments = get_comments_number();
$reversed_page = ceil(($total_comments - $comment_id) / $args['per_page']);
return $reversed_page;
}
Offset comment page numbering
This example offsets the comment page numbering by 1.
add_filter('get_page_of_comment', 'offset_comment_page_number', 10, 6);
function offset_comment_page_number($page, $args, $original_args, $comment_id) {
return $page + 1;
}
Exclude comments from specific users
This example excludes comments from specific user IDs (1 and 2 in this case) when calculating comment pages.
add_filter('get_page_of_comment', 'exclude_comments_from_users', 10, 6);
function exclude_comments_from_users($page, $args, $original_args, $comment_id) {
$comment = get_comment($comment_id);
$excluded_users = array(1, 2);
if (in_array($comment->user_id, $excluded_users)) {
return false;
}
return $page;
}
Customize comment page calculation based on comment type
This example customizes the comment page calculation based on the comment type.
add_filter('get_page_of_comment', 'customize_comment_page_by_type', 10, 6);
function customize_comment_page_by_type($page, $args, $original_args, $comment_id) {
$comment = get_comment($comment_id);
if ($comment->comment_type == 'trackback') {
$page = ceil(($args['per_page'] - $comment_id) / 5);
}
return $page;
}