Простое решение -
dimox.name/wordpress-pagination-without-a-plugin
Пример реализации -
https://md7.info/surgery
https://reporter.by/belarus
Лучше используйте циклы query_posts или WP_Query
А вы не разделили шаблон на footer.php & header.php ? Как я вижу у вас wp_footer() находится в том же шаблоне, где он вызывается...
Готовый рабочий код:
Добавьте в functions:
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 = 1; //1 - выводить текст "Страница N из N", 0 - не выводить
$a['mid_size'] = 3; //сколько ссылок показывать слева и справа от текущей
$a['end_size'] = 1; //сколько ссылок показывать в начале и в конце
$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>';
}
Добавьте стили:
/* pagination */
.navigation {
display: block;
text-align: center;
margin: 20px auto;
}
.pages {
padding: 5px 7px;
color: #fff;
background: #333;
}
.page-numbers {
background: #333;
padding: 5px 7px;
color: #fff !important;
}
.page-numbers.current {
text-decoration: underline;
}
.page-numbers:hover {
text-decoration:none;
opacity: 0.8;
}
Добавьте код вывода пагинации в цикл:
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<? //здесь ваш контент ?>
<?php endwhile; ?>
<?php if (function_exists('wp_corenavi')) wp_corenavi(); ?>
<?php endif; ?>
P.S. не забудьте передать ваши аргументы $args