Количество сообщений WordPress: X из Y?

Я работаю над темой с CPT. В single-cpt.php я хочу показать номер сообщения из общего числа сообщений.

Мне удалось показать общее количество сообщений в порядке, используя:

   <?php $args = array(
    'post_type' => 'cpt_type',
    'post_status' => 'published',
    'numberposts' => -1
);
echo $num = count( get_posts( $args ) ); ?>

и он возвращает общее количество сообщений для этого типа CPT. Итак, на каждом отдельном CPT я получил общее количество.

Я хотел бы иметь "номер поста"/"общее количество постов". Пример: 21.07, и когда я перехожу к следующему посту: 21.08 и так далее...

Итак, как я могу заставить каждый отдельный пост иметь «номер»?

Спасибо!

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
55
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вставьте это в functions.php:

function get_total_number_of_posts( $post ) {
    $posts = get_posts( array(
        'post_type'      => $post->post_type,
        'posts_per_page' => -1
    ) );

    return count( $posts );
}

function get_current_post_index( $post ) {
    $posts = get_posts( array(
        'post_type'      => $post->post_type,
        'posts_per_page' => -1
    ) );

    $index = 0;

    foreach ( $posts as $p ) {
        $index++;

        if ( $p->ID === $post->ID ) {
            break;
        }
    }

    return $index;
}

а затем в файле single.php:

global $post;

$total_posts  = get_total_number_of_posts( $post );
$current_post = get_current_post_index( $post );

echo "You are viewing {$current_post} out of {$total_posts}";

БЛАГОДАРНОСТЬ!!!! Это сработало с небольшой настройкой: я изменил: 'post_type' => $post->post_type, для 'post_type' => 'my_post_type',

Frank 11.02.2019 20:01

Другие вопросы по теме