vainax
@vainax
псевдо-разработчик

Почему не работает пагинация в Wordpress?

есть код вывода записей из родительской категории
<section class="product">
            <?php
            $parent_id = 5;
# получаем дочерние рубрики
            $sub_cats = get_categories( array(
                'child_of' => $parent_id,
                'hide_empty' => 0
            ) );
            if( $sub_cats ){
                foreach( $sub_cats as $cat ){
        # получаем записи из рубрики
                    $myposts = get_posts( array(
                        'numberposts' => 6,
                        'category'    => $cat->cat_ID,
                        'orderby'     => 'post_date',
                        'order'       => 'DESC',
                    ) );
        # выводим записи
                    global $post;
                    echo '<div class="prod-item">';
                    echo '<h3 class="catt">'. $cat->name .'</h3>';
                    foreach($myposts as $post){
                        setup_postdata($post);
                        echo '<div class="entry col-md-6 ' . $cat->category_nicename . '"><div class="right">';
                        echo '<h3 class="entry-title video"><a href="'. get_permalink() .'">'. get_the_title() .'</a></h3></div>';
                        echo '<div class="left"><div class="entry-thumb"><a href="' . get_permalink() . '">' . get_the_post_thumbnail( $page->ID, 'full') . '</a></div>';
                        echo  mb_substr( strip_tags( get_the_content() ), 0, 120 ) . '</div></div>';
                    }
                    echo '</div>';
        wp_reset_postdata(); // сбрасываем глобальную переменную пост

    }
};?>
</section>
<?php 
the_posts_pagination( array(
    'end_size' => 2,
    'prev_text'    => __('&#8592;'),
    'next_text'    => __('&#8594;'),
) ); 
?>

и есть пагинация, при клике на след страницу - отображаются те же записи, не подскажите почему?
  • Вопрос задан
  • 67 просмотров
Решения вопроса 1
vainax
@vainax Автор вопроса
псевдо-разработчик
Разобрался сам, может кому поможет:
Кастомные циклы в wordpress должны содержать параметр 'paged', иначе wordpress "не понимает", какая страница пагинации должна выводиться. Пример:
<section class="product">
            <?php
            $parent_id = 5;
# получаем дочерние рубрики
            $sub_cats = get_categories( array(
                'child_of' => $parent_id,
                'hide_empty' => 0
            ) );
            if( $sub_cats ){
                foreach( $sub_cats as $cat ){
        # получаем записи из рубрики
                    $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
                    $myposts = get_posts( array(
                        'numberposts' => 6,
                        'category'    => $cat->cat_ID,
                        'orderby'     => 'post_date',
                        'order'       => 'DESC',
                        'paged' => $paged,
                    ) );
        # выводим записи
                    global $post;
                    echo '<div class="prod-item">';
                    echo '<h3 class="catt">'. $cat->name .'</h3>';
                    foreach($myposts as $post){
                        setup_postdata($post);
                        echo '<div class="entry col-md-6 ' . $cat->category_nicename . '"><div class="right">';
                        echo '<h3 class="entry-title video"><a href="'. get_permalink() .'">'. get_the_title() .'</a></h3></div>';
                        echo '<div class="left"><div class="entry-thumb"><a href="' . get_permalink() . '">' . get_the_post_thumbnail( $page->ID, 'full') . '</a></div>';
                        echo  mb_substr( strip_tags( get_the_content() ), 0, 120 ) . '</div></div>';
                    }
                    echo '</div>';
        wp_reset_postdata(); // сбрасываем глобальную переменную пост

    }
};?>
</section>
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы