user3207894
user3207894

Reputation: 41

Adding Pagination to Wordpress query for categories

I am trying to add pagination to a custom category list I have for a website gallery using WordPress. I have tried to follow a few guides but unable to add the paging function to my query. I have added my current queries. Any help would be appreciated.

<?php

            global $paged;
            $curpage = $page ? $paged :1;

            $args2 = array(
                'taxonomy' => 'media-category',
                //'parent' => '5',
                'child_of' => 7,
                'orderby' => 'date',
                'order' => 'ASC',
                'hide_empty' => 0,
                'number' => 99,
                'posts_per_page' => 3,
                'paged' => $paged,
            );
            ?>
            <ul class="gallery-list small-block-grid-1 medium-block-grid-2 large-block-grid-3">
                <?php
                $categories = get_categories($args2);
                foreach ($categories as $category) {

                    $args = array(
                        'post_type' => 'attachment',
                        'post_status' => 'any',
                        'posts_per_archive_page' => -1,
                        'tax_query' => array(
                            array(
                                'taxonomy' => 'media-category',
                                'field' => 'slug',
                                'terms' => array($category->name, 'featured'),
                                'operator' => 'AND',
                            ),
                        ),
                    );
                    $custom_query = new WP_Query($args);
                    ?>
                    <?php while ($custom_query->have_posts()) : $custom_query->the_post(); ?>

Upvotes: 2

Views: 3319

Answers (1)

user3207894
user3207894

Reputation: 41

I found the answer.

// Sets manual pagination
            $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
            $posts_per_page = 12;
            $offset = ($posts_per_page * $paged) - 12 ;

$args = array(
                'orderby' => 'id',
                'order' => 'DESC',
                'hide_empty' => 0,
                'number' => $posts_per_page,
                'offset' => $offset,
            );

$categories = get_terms($taxonomies, $args);

This sets the page up to have 12 items per page and offsets the page number.

Upvotes: 2

Related Questions