Перепробовал множество способов исправления этой проблемы, ничего не помогло. Использую произвольный вид 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(); ?>
Настройки постоянных ссылок обновлял.
Подскажите пожалуйста в чём проблема?