Как вывести количество записей в категории?

Ссылка скопирована
PHP
1 ответ

В общем
в шаблоне archive . php нужно каким то образом вывести количество записей в категории в которой находимся
как можно вывести количество записей?

<?php if ( have_posts() ) : ?>  			<div class="cat-header "> 				<?php 				the_archive_title( '<h1 class="page-title wow animate__animated animate__fadeInLeft">', '</h1>' );                                 // вот сюда нужно вывести подсчет  				?> 			</div>  				<div class="<? echo get_field( 'select', 'category_' . get_queried_object_id() ); ?>"> 			<?php 			/* Start the Loop */ 			while ( have_posts() ) : 				the_post();

<?php if ( have_posts() ) : ?> <div class="cat-header "> <?php the_archive_title( '<h1 class="page-title wow animate__animated animate__fadeInLeft">', '</h1>' ); // вот сюда нужно вывести подсчет ?> </div> <div class="<? echo get_field( 'select', 'category_' . get_queried_object_id() ); ?>"> <?php /* Start the Loop */ while ( have_posts() ) : the_post();

т.е напр. категория
Новости (53 записи)

Дополнительно:

Как вывести количество записей в категории?

global $wp_query; echo $wp_query->found_posts;

global $wp_query; echo $wp_query->found_posts;

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Максим Павлов Ответ

На странице архива категории количество найденных записей уже есть в главном запросе WordPress. Самый простой вариант в archive.php или category.php:

<?php
global $wp_query;
 
echo esc_html( $wp_query->found_posts );
?>

<?php global $wp_query; echo esc_html( $wp_query->found_posts ); ?>

Если нужно вывести заголовок в формате «Новости (53 записи)», можно сделать так:

<div class="cat-header">
    <h1 class="page-title">
        <?php single_cat_title(); ?>
        <span>(<?php echo esc_html( $wp_query->found_posts ); ?> записей)</span>
    </h1>
</div>

<div class="cat-header"> <h1 class="page-title"> <?php single_cat_title(); ?> <span>(<?php echo esc_html( $wp_query->found_posts ); ?> записей)</span> </h1> </div>

$wp_query->found_posts показывает количество записей, найденных текущим запросом, без учёта пагинации. То есть если в категории 53 записи, а на странице выводится 10, значение всё равно будет 53.

Если нужен именно счётчик термина из базы, можно взять текущую категорию и её поле count:

<?php
$term = get_queried_object();
 
if ( $term instanceof WP_Term ) {
    echo esc_html( $term->count );
}
?>

<?php $term = get_queried_object(); if ( $term instanceof WP_Term ) { echo esc_html( $term->count ); } ?>

Разница такая: $term->count хранит общее количество опубликованных записей, привязанных к категории, а $wp_query->found_posts учитывает текущий запрос. Если в архиве дополнительно фильтруете записи по мета-полям, типам записей или другим условиям, надёжнее использовать found_posts.

Ваш ACF-класс для категории можно оставить рядом:

<div class="<?php echo esc_attr( get_field( 'select', 'category_' . get_queried_object_id() ) ); ?>">

<div class="<?php echo esc_attr( get_field( 'select', 'category_' . get_queried_object_id() ) ); ?>">

Для вывода в HTML всегда используйте esc_html() или esc_attr(), чтобы случайное значение из админки не сломало разметку.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно