Сначала достается общее количество отзывов
if (!empty($params['limit'])) {
$limit = db_quote("LIMIT ?i", $params['limit']);
} elseif (!empty($params['items_per_page'])) {
$params['total_items'] = db_get_field("SELECT COUNT(*) FROM ?:discussion_posts $join WHERE $condition");
$limit = db_paginate($params['page'], $params['items_per_page'], $params['total_items']);
}
Повлиять на выборку можно только потом - так как hook с condition идет ниже
fn_set_hook('get_discussion_posts', $params, $items_per_page, $fields, $join, $condition, $order_by, $limit);
Таким образом, если делать свою выборку, общее количество все равно не будет учитывать изменение $condition.