@Rokis
Не стыдно спрашивать, стыдно не пытаться...

Почему не работает пагинация на странице архивов в Wordpress?

Перепробовал множество способов исправления этой проблемы, ничего не помогло. Использую произвольный вид URL : /%category%/%postname%

Есть код пагинации:
function wp_corenavi() {
	global $wp_query;
	$pages = '';
	$max = $wp_query->max_num_pages;
	if (!$current = get_query_var('paged')) $current = 1;
	$a['base'] = str_replace(999999999, '%#%', get_pagenum_link(999999999));
	$a['total'] = $max;
	$a['current'] = $current;

	$total = 0;
	$a['mid_size'] = 3;
	$a['end_size'] = 2;
	$a['prev_text'] = '«';
	$a['next_text'] = '»';
	
	if ($max > 1) echo '<div class="navigation">';
	if ($total == 1 && $max > 1) $pages = '<span class="pages">Страница ' . $current . ' из ' . $max . '</span>'."\r\n";
	echo $pages . paginate_links($a);
	if ($max > 1) echo '</div>';
}
//end


Этим кодом нормально выводится пагинация на главной странице, а на странице архивов не работает. Сначала просто выдавал ошибку 404 при переходе на вторую и дальше страницы. Я исправил. Затем стала оставаться та же страница. URL меняется, а страница остаётся. Например, www.site.ru/knigi/page/2
www.site.ru/knigi/page/3
www.site.ru/knigi/page/4


Проблемы нету при добавлении в URL /category/
www.site.ru/category/knigi/page/2 - отображается нормально.

Перечитал кучу разных статей на эту тему - ничего не помогло. Глобальную переменную нигде не использую. ВСЕ посты вывожу через стандартный цикл:
<?php if( have_posts() ){ while( have_posts() ){ the_post(); ?>

Настройки постоянных ссылок обновлял.

Подскажите пожалуйста в чём проблема?
  • Вопрос задан
  • 3821 просмотр
Решения вопроса 1
wppanda5
@wppanda5 Куратор тега WordPress
WordPress Mедведь
Используйте встроенную в ядро пагинацию get_the_posts_pagination()
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
HeadOnFire
@HeadOnFire
PHP, Laravel & WordPress Evangelist
Я не могу понять, с чего вы вообще ожидаете, что урл без category base должен работать? То есть, www.site.ru/knigi/page/2 и не должен работать, в то же самое время, www.site.ru/category/knigi/page/2 должен работать, ибо у него есть category base (выделено жирным). В общем, все ок, так и должно быть. Вы просто почему-то ждете нетипичного поведения там, где его не должно быть. Это раз.

Два - хватит уже изобретать какие-то костыли для пагинации. Есть встроенные средства на любой вкус.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы