Как написать вывод постов с пагинацией (в wordpress), с разбивкой по категориям?

Хочу вывести все статьи разбив их по категориям, и чтобы работала пагинация.
Без пагинации все работает отлично, а вот с пагинацией получаю так:
5c64bbf423776218108292.png

Помогите поправить код, чтобы заработало как надо.
вот код
<?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();
?>


Если без пагинации, то выводит все верно. А с пагинацией начинаются чудеса.
  • Вопрос задан
  • 45 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы