There are multiple ways of showing a list of (custom) posts by taxonomy, but none appear to allow for pagination.
So, I can easily list all posts like:
Page 1
- 1
- 2
- 3
- 4
- 5
Page 2
- 6
- 7
- 8
- 9
- 10
With a little effort, I can list posts grouped by taxonomy
Page 1
- A
- 1
- 2
- B
- 3
- 4
- 5
- 6
- C
- 7
- 8
- D
- 9
- 10
But what I need help doing is mixing in pagination E.g.
Page 1
- A
- 1
- 2
- B
- 3
- 4
- 5
Page 2
- B
- 6
- C
- 7
- 8
- D
- 9
- 10
Any ideas?
Example code below:
<?php // Get current Category $get_current_cat = get_term_by('name', single_cat_title('',false), 'category'); $current_cat = $get_current_cat->term_id; // List posts by the terms for a custom taxonomy of any post type $post_type = 'myposttype'; $tax = 'mytaxonomy'; $tax_terms = get_terms( $tax, 'orderby=name&order=ASC'); if ($tax_terms) { foreach ($tax_terms as $tax_term) { $args = array( 'post_type' => $post_type, "$tax" => $tax_term->slug, 'post_status' => 'publish', 'posts_per_page' => -1, 'category__in' => $current_cat // Only posts in current category (category.php) ); $my_query = null; $my_query = new WP_Query($args); if( $my_query->have_posts() ) : ?> <h2><?php echo $tax_term->name; // Group name (taxonomy) ?></h2> <?php while ( $my_query->have_posts() ) : $my_query->the_post(); ?> <?php $term_list = wp_get_post_terms($post->ID, 'category', array("fields" => "ids")); // Get post categories IDs?> <?php if (in_array($current_cat, $term_list) ): // Display only posts that have current category ID ?> <h3><?php the_title(); ?></h3> <?php endif; // if in_array ?> <?php endwhile; // end of loop ?> <?php endif; // if have_posts() wp_reset_query(); } // end foreach #tax_terms } // end if tax_terms ?>