Как добавить постраничную нумерацию чисел на эту страницу блога?

Вопрос или проблема

Я хочу добавить нумерацию страниц в свой блог. Я попытался добавить код для пагинации, но он не появляется. Вот код, и я хочу добавить нумерацию страниц к нему. Это страница блога.

<?php
               $args = array(
                    'post_type' => 'post'
                );
            
                $post_query = new WP_Query($args);

            if($post_query->have_posts() ) {
                while($post_query->have_posts() ) {
                    $post_query->the_post();
                    ?>

         <div class="cbp-item">
            <div class="news_item shadow">
               <a class="image" href="<?php the_permalink();?>">
                  <img src="<?php the_post_thumbnail_url(); ?>" alt="Последние новости" class="img-responsive">
               </a>
               <div class="news_desc">
                  <h3 class="text-capitalize font-light darkcolor"><a href="<?php the_permalink();?>"><?php the_title();?></a></h3>
                  <ul class="meta-tags top20 bottom20">
                     <li><a href="#."><i class="fa fa-calendar"></i><?php echo get_the_date( 'M d' ); ?></a></li>
                     <li><a href="#."> <i class="fa fa-user" aria-hidden="true"></i> <?php the_author_posts_link();?> </a></li>
                     <li><a href="#."><i class="fa fa-comment-o"></i><?php comments_number( 'нет откликов', 'один отклик', '% откликов' ); ?></a></li>
                  </ul>
                  <p class="bottom35"><?php the_excerpt(); ?></p>
                  <a href="<?php the_permalink();?>" class="button btnprimary btn-gradient-hvr">Читать далее</a>
               </div> 
            </div> 
         </div> 

         <?php
            }
        }
        
           ?>

Прежде всего, вам необходимо получить переменную запроса для страниц и передать ее в основные параметры запроса:

//Защита от произвольных значений страниц
$paged = ( get_query_var( 'paged' ) ) ? absint( get_query_var( 'paged' ) ) : 1;

$args = array(
    'post_type' => 'post'
    'paged' => $paged,
);

Затем вам нужно добавить следующий код в то место, где вы хотите, чтобы пагинация появилась:

<?php
    $big = 999999999; // нужно маловероятное целое число
     
    echo paginate_links( array(
        'base'      => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
        'format'    => '?paged=%#%',
        'current'   => max( 1, get_query_var('paged') ),
        'total'     => $post_query->max_num_pages
    ) );
?>

Ответ или решение

Как добавить постраничную навигацию с номерами на страницу блога WordPress

Вопрос, который вы задали, является важным для улучшения пользовательского опыта на сайте и обеспечения удобной навигации между записями блога. Для реализации номерной постраничной навигации в вашем блоге, необходимо внести изменения в код, что позволит пользователям легко перемещаться между страницами. Ниже представлены пошаговые инструкции для достижения этой цели.

Шаг 1: Получение переменной текущей страницы (paged)

Первым делом, вам нужно получить значение переменной paged, которая отвечает за текущую страницу в запросе. Это можно сделать с помощью функции get_query_var(). Обратите внимание, что мы также применяем функцию absint(), чтобы защититься от произвольных значений.

$paged = ( get_query_var( 'paged' ) ) ? absint( get_query_var( 'paged' ) ) : 1;

Шаг 2: Уточнение аргументов запроса

Теперь, когда у нас есть переменная $paged, мы можем использовать её в аргументах нашего основного запроса WP_Query. Добавьте параметр 'paged' => $paged в массив $args, чтобы указать, на какой странице находится пользователь.

$args = array(
    'post_type' => 'post',
    'paged' => $paged,
);

Шаг 3: Добавление кода для постраничной навигации

В том месте, где вы хотите отобразить постраничную навигацию, вам нужно добавить следующий код. Этот код генерирует ссылки постраничной навигации с числами страниц.

$big = 999999999; // некий маловероятный целочисленный идентификатор

echo paginate_links( array(
    'base'      => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
    'format'    => '?paged=%#%',
    'current'   => max( 1, get_query_var('paged') ),
    'total'     => $post_query->max_num_pages
) );

Шаг 4: Вставка кода в вашу структуру

Теперь интегрируйте все изменения в ваш исходный код:

<?php
    $paged = ( get_query_var( 'paged' ) ) ? absint( get_query_var( 'paged' ) ) : 1;

    $args = array(
        'post_type' => 'post',
        'paged' => $paged,
    );

    $post_query = new WP_Query($args);

    if($post_query->have_posts()) {
        while($post_query->have_posts()) {
            $post_query->the_post();
?>

<div class="cbp-item">
    <div class="news_item shadow">
        <a class="image" href="<?php the_permalink(); ?>">
            <img src="<?php the_post_thumbnail_url(); ?>" alt="Latest News" class="img-responsive">
        </a>
        <div class="news_desc">
            <h3 class="text-capitalize font-light darkcolor"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3>
            <ul class="meta-tags top20 bottom20">
                <li><a href="#."><i class="fa fa-calendar"></i><?php echo get_the_date( 'M d' ); ?></a></li>
                <li><a href="#."><i class="fa fa-user" aria-hidden="true"></i><?php the_author_posts_link(); ?></a></li>
                <li><a href="#."><i class="fa fa-comment-o"></i><?php comments_number( 'no responses', 'one response', '% responses' ); ?></a></li>
            </ul>
            <p class="bottom35"><?php the_excerpt(); ?></p>
            <a href="<?php the_permalink(); ?>" class="button btnprimary btn-gradient-hvr">Read more</a>
        </div>
    </div>
</div>

<?php
        }

        // Код для постраничной навигации
        $big = 999999999;
        echo paginate_links( array(
            'base'      => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
            'format'    => '?paged=%#%',
            'current'   => max( 1, get_query_var('paged') ),
            'total'     => $post_query->max_num_pages
        ) );

    } else {
        echo '<p>Записи не найдены.</p>';
    }
?>

Заключение

С применением вышеперечисленных шагов на вашей странице блога будет реализована постраничная навигация с номерами страниц. Это не только улучшит пользовательский опыт на вашем сайте, но и может положительно сказаться на SEO, так как обеспечит более структурированный доступ к контенту.
Разработайте свою навигацию с умом, и ваш блог станет более удобным для посетителей.

Оцените материал
Добавить комментарий

Капча загружается...