Хочу вывести все статьи разбив их по категориям, и чтобы работала пагинация.
Без пагинации все работает отлично, а вот с пагинацией получаю так:
Помогите поправить код, чтобы заработало как надо.
вот код<?php
if ( get_query_var('paged') ) $paged = get_query_var('paged');
elseif ( get_query_var('page') ) $paged = get_query_var('page');
else $paged = 1;
$exclude_posts = array(); // Исключения
$args = array(
'paged' => $paged,
'post_type' => 'post',
'posts_per_page' => 20,
'order' => 'DESC',
'post__not_in' => $exclude_posts,
'orderby' => 'modified');
$custom_query = new WP_Query( $args );
$q = array();
while ( $custom_query->have_posts() ) {
$custom_query->the_post();
$a = '<a href="'. get_permalink() .'">' . get_the_title() .'</a>';
$categories = get_the_category();
foreach ( $categories as $key=>$category ) {
$b = '<a href="' . get_category_link( $category ) . '"><h2>' . $category->name . '</h2></a>';
}
$q[$b][] = $a; // Create an array with the category names and post titles
}
foreach ($q as $key=>$values) {
echo $key;
echo '<ol>';
foreach ($values as $value){
echo '<li>' . $value . '</li>';
}
echo '</ol>';
}
if ($custom_query->max_num_pages > 1) {
$orig_query = $wp_query;
$wp_query = $custom_query;
the_posts_pagination(array(
'prev_text' => (''),
'next_text' => (''),
'end_size' => 1,
'mid_size' => 2
));
$wp_query = $orig_query;
}
wp_reset_postdata();
?>
Если без пагинации, то выводит все верно. А с пагинацией начинаются чудеса.