Функция get_comment_pages_count() │ WP 2.7.0
Функция get_comment_pages_count() используется для вычисления общего количества страниц комментариев. Это полезно, если вам нужно разделить комментарии на несколько страниц.
Возвращаемое значение
Int: количество страниц с комментариями.
Использование
get_comment_pages_count( $comments, $per_page, $threaded );
Параметры
$comments (WP_Comment[])— массив объектов комментариев. По умолчанию:$wp_query->comments$per_page (int)— количество комментариев на странице. По умолчанию: значение переменнойcomments_per_pageили 1 (в этом порядке).$threaded (true|false)— управление тем, будут ли комментарии показаны в виде дерева (под комментарии). По умолчанию: значение опцииthread_comments.
Примеры
Пример 1: Использование функции в цикле
$pages = get_comment_pages_count();
Пример 2: Использование пользовательских параметров
В этом примере показано, как работать с параметрами функции:
// Страницы комментариев, если 25 комментариев на странице.
$pages = get_comment_pages_count( null, 25 );
// Комментарии, если вы не делите их на дерево (без деревообразных комментариев).
$pages = get_comment_pages_count( null, null, false );
// Страницы комментариев, если 10 комментариев на странице и они в виде дерева.
$pages = get_comment_pages_count( null, 10, true );
Пример 3: Использование функции вне цикла комментариев
Если вы используете функцию вне цикла комментариев, необходимо указать параметр $comments, содержащий массив комментариев для подсчета. Этот массив можно получить с помощью класса WP_Comment_Query.
$args = array(
// параметры запроса здесь
);
$comments_query = new WP_Comment_Query;
$comments = $comments_query->query( $args );
$pages = get_comment_pages_count( $comments );
Заметки
- Глобальная переменная:
WP_Query. $wp_query— объект запроса WordPress.
Изменения
- С версии 2.7.0: введена функция.
Код функции get_comment_pages_count()
function get_comment_pages_count( $comments = null, $per_page = null, $threaded = null ) {
global $wp_query;
if ( null === $comments && null === $per_page && null === $threaded && ! empty( $wp_query->max_num_comment_pages ) ) {
return $wp_query->max_num_comment_pages;
}
if ( ( ! $comments || ! is_array( $comments ) ) && ! empty( $wp_query->comments ) ) {
$comments = $wp_query->comments;
}
if ( empty( $comments ) ) {
return 0;
}
if ( ! get_option( 'page_comments' ) ) {
return 1;
}
if ( ! isset( $per_page ) ) {
$per_page = (int) get_query_var( 'comments_per_page' );
}
if ( 0 === $per_page ) {
$per_page = (int) get_option( 'comments_per_page' );
}
if ( 0 === $per_page ) {
return 1;
}
if ( ! isset( $threaded ) ) {
$threaded = get_option( 'thread_comments' );
}
if ( $threaded ) {
$walker = new Walker_Comment();
$count = ceil( $walker->get_number_of_root_elements( $comments ) / $per_page );
} else {
$count = ceil( count( $comments ) / $per_page );
}
return (int) $count;
}
Связанные функции
- Пагинация комментариев (навигация)
get_comments_pagenum_link()get_next_comments_link()get_page_of_comment()get_previous_comments_link()get_the_comments_navigation()next_comments_link()paginate_comments_links()previous_comments_link()the_comments_navigation()the_comments_pagination()
Эти функции помогут вам управлять отображением и навигацией по комментариям в WordPress.