• Решено Verbal74

    (@verbal74)


    Написал такую функцию

    function view_category($atts){
        extract( shortcode_atts( array(
            'cat' => '0',
            'posts_per_page' => 1
        ), $atts ) );
    
        query_posts(array("cat" => $cat, "posts_per_page" => $posts_per_page));   // указываем ID рубрик, которые необходимо вывести.
        if ( have_posts() ) {
            while (have_posts()) : the_post();  // запускаем цикл обхода материалов блога
                ?>
                <h1><?php the_title(); ?></h1>
                <?php
                the_content();
            endwhile;  // завершаем цикл.
        } else {
            echo '<div class="no_post">Записей в рубрике нет.</div>';
        }
    
        global $wp_query, $paged;
        $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')),
            'type' => 'list',
            'prev_text' => __('« Сюда'),
            'next_text' => __('Туда »'),
            'total' => $wp_query->max_num_pages
        ));
        /* Сбрасываем настройки цикла. Если ниже по коду будет идти еще один цикл, чтобы не было сбоя. */
        wp_reset_query();
    }

    Всё работает нормально, категории нужные выбираются и т.д., но есть один недостаток, не работает пагинация, что не так? и что тут нужно добавить или переписать

Просмотр 3 ответов — с 1 по 3 (всего 3)
  • $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
    query_posts(array("cat" => $cat, "posts_per_page" => $posts_per_page) . '&paged=' . $paged);
    Автор Verbal74

    (@verbal74)

    Спасибо помогло, только не так как вы написали, если так сделать, то сё сбивается и выводится все категории и кол-во на странице берётся из админке.

    А вот так

    $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
        query_posts(array("cat" => $cat, "posts_per_page" => $posts_per_page, "paged" => $paged));

    вот так работает без проблем

    ну я не проверял код 🙂
    дал направление только — эта проблема с пагинацией тут каждую неделю на форуме появляется Ж)

Просмотр 3 ответов — с 1 по 3 (всего 3)
  • Тема «Не работает плагинация в функции» закрыта для новых ответов.