Wordpress - Пагинация не работает с пользовательским циклом, но работает на страницах блога - PullRequest
0 голосов
/ 23 мая 2019

У меня есть цикл с пользовательскими типами постов, и нумерация страниц не появляется, когда я ввожу URL с помощью / page / 2, / page / 3 ... он показывает содержимое правильно, но ссылки не отображаются на страница.

Вот код:

<?php 
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$parent_only_query = new WP_Query(array(
    'post_type' => 'my_cpt',
    'posts_per_page' => 4,
    'paged' => $paged,
    'post_parent' => 0 
));

while ($parent_only_query->have_posts()){
    $parent_only_query->the_post();

//content

}       
pagination(); ?>

Страница архива с пагинацией работает:

<?php /* Start the Loop */ ?>
<?php while ( have_posts() ) : the_post(); ?>

<?php //content ?>

<?php endwhile; ?>

<?php else : ?>

<?php get_template_part( 'loop-templates/content', 'none' ); ?>

<?php endif; ?>
<?php pagination(); ?>

Ответы [ 2 ]

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

разбиение на страницы можно отображать в шаблоне архивов пользовательских типов записей, а также в шаблонах.

Пагинация для архива шаблона.

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


    // prepare arguments
   $args = array( 'post_type' => 'product',
    'post_type' => 'my_cpt',
    'posts_per_page' => 4,
    'paged' => $paged,
    'post_parent' => 0 
   );


    //prepare query
    new WP_Query( $args ); 

        // Call pagination function before 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,
        ) );

Нумерация страниц для пользовательских шаблонов

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


    // prepare arguments
    $args = array( 
     post_type' => 'my_cpt',
     'posts_per_page' => 4,
     'paged' => $paged,
     'post_parent' => 0 
   );


    //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 на Wordpress Codex

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

add this in your functions.php

function pagination_nav() {
    global $wp_query;
 
    if ( $wp_query->max_num_pages > 1 ) { ?>
        <nav class="pagination" role="navigation">
            <div class="nav-previous"><?php next_posts_link( '&larr; Older posts' ); ?></div>
            <div class="nav-next"><?php previous_posts_link( 'Newer posts &rarr;' ); ?></div>
        </nav>
<?php }
}

display on page.php

<?php pagination_nav(); ?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...