Добавить постраничные номера на сообщения продуктов - PullRequest
1 голос
/ 15 мая 2019

Итак, это веб-сайт .. https://chicafriqfashion.com/ и на одной из страниц, таких как https://chicafriqfashion.com/fabrics/, есть продукты на этой странице.

Мне удалось добавить нумерацию страниц внизу, но это просто предыдущий и следующий.

Мне нужно, чтобы показать номера страниц.

Пожалуйста, помогите.

Это начало

<?php

        $args = array( 'post_type' => 'product', 'stock' => 1, 'product_cat' => 'earrings-ring', 'posts_per_page' => '12','order' => 'DESC', 'paged' => $paged );
        $loop = new WP_Query( $args );
        while ( $loop->have_posts() ) : $loop->the_post(); global $product; ?>

А это мой код нумерации страниц

<h3>Pages:  
<?php previous_posts_link( '&laquo; PREV', $loop->max_num_pages) ?>
            <?php next_posts_link( 'NEXT &raquo;', $loop->max_num_pages) ?>
 </h3>
</div>
<?php wp_reset_postdata(); ?>

Ответы [ 2 ]

0 голосов
/ 16 мая 2019

Добавьте следующий код в вашу активную тему function.php file.
Примечание: если у вас есть дочерняя тема, то добавьте этот код в дочернюю тему function.php file

if ( ! function_exists( 'number_pagination' ) ) :
    function number_pagination() {
        global $wp_query;

        $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' => $wp_query->max_num_pages
        ) );
    }
endif;

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

<?php number_pagination( $loop ); ?>
</div>

0 голосов
/ 15 мая 2019

Решение -1 (Архивные страницы)

Первая выборка текущей страницы для передачи в аргументах Wp_Query.

        // current page
        $paged = get_query_var( 'paged' ) ? get_query_var( 'paged' ) : 1;

        // prepare arguments
        $args = array( 'post_type' => 'product',
       'stock' => 1,
       'product_cat' => 'earrings-ring',
       'posts_per_page' => '12',
       'order' => 'DESC',
       'paged' => $paged 
       );

        //prepare query
        new WP_Query( $args ); 

Вы должны вызвать функцию разбиения на страницы WordPress перед wp_reset_postdata ()

            the_posts_pagination( array(
                'prev_text'          => '<span class="fa fa-angle-left" aria-hidden="true"></span>',
                'next_text'          => '<span class="fa fa-angle-right" aria-hidden="true"></span>',
                'screen_reader_text' => '&nbsp;',
                'before_page_number' => '',
                'mid_size'    => 3,
            ) );

Решение -2 (пользовательские шаблоны)

Создание запроса Wp

        // prepare arguments
        $args = array( 'post_type' => 'product',
       'stock' => 1,
       'product_cat' => 'earrings-ring',
       'posts_per_page' => '12',
       'order' => 'DESC',
       'paged' => $paged 
       );

        //prepare query
        $query = new WP_Query( $args );
        $totalPage=$query->max_num_pages;

Функция разбиения на страницы вызова

                $big = 999999999; // need an unlikely integer
                echo paginate_links( array(
                    'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
                    'format' => '?paged=%#%',
                    'current' => max( 1, get_query_var('paged') ),
                    'total' => $totalPage
                ) );

Это решение работает для пользовательских шаблонов страниц,Вы можете проверить документацию WordPress .

...