Как показать нумерацию страниц в Wordpress для категорий? - PullRequest
0 голосов
/ 10 мая 2019

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

Это мой код:

<?php

$cat_id = get_query_var('cat');

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

$args = array(
    'cat' => $cat_id,
'posts_per_page' => 5,
  'paged' => $paged
);
$query = new WP_Query( $args );

while ( $query->have_posts() ) : $query->the_post();
    //Post data
    echo get_the_post_thumbnail(get_the_ID());
?>

<li>With some posts</li>

<?php
endwhile;
?>

И затем я пытаюсьвыплюнуть мою навигацию так:

<?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 }
}
?>

<?php echo pagination_nav();
?>

Но что бы я ни делал, я не могу вернуть его.Как именно я должен это сделать?$ paged должно работать, верно?У меня более 20 сообщений, но я нигде не вижу свою кнопку навигации / пейджинга.

Наконец, я попробовал приведенный ниже код, но он не переходит на вторую страницу моего запроса.URL говорит / category / categoryname / page / 2, но просто отправляет меня на пустую страницу ...

<div class="pagination">
    <?php 
        echo paginate_links( array(
            'base'         => str_replace( 999999999, '%#%', esc_url( get_pagenum_link( 999999999 ) ) ),
            'total'        => $query->max_num_pages,
            'current'      => max( 1, get_query_var( 'paged' ) ),
            'format'       => '?paged=%#%',
            'show_all'     => false,
            'type'         => 'plain',
            'end_size'     => 2,
            'mid_size'     => 1,
            'prev_next'    => true,
            'prev_text'    => sprintf( '<i></i> %1$s', __( 'Newer Posts', 'text-domain' ) ),
            'next_text'    => sprintf( '%1$s <i></i>', __( 'Older Posts', 'text-domain' ) ),
            'add_args'     => false,
            'add_fragment' => '',
        ) );
    ?>
</div>

1 Ответ

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

Хорошо, позвольте мне ответить на мой собственный вопрос. Я решил это, используя тот же код, но изменив настройки (!) На моей странице Wordpress. При включении настройки пагинации попробуйте изменить значение по умолчанию «paginate by 50 posts» на что-то вроде «10» или около того. Это запускает код для работы.

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