Как добавить постраничную навигацию по постам в WordPress без плагина?
Этот вопрос задают множество вебмастеров, создавая сайты на WordPress. И это правильно, если что-то можно сделать без плагина – лучше делать без плагина, поскольку так мы сохраняем скорость работы нашего сайта.
В WordPress навигация активируется с помощью несложной функции, о которой я сейчас расскажу.
Установка
Для того чтобы добавить навигацию на ваш сайт, необходимо:
1. Подключиться к сайту по FTP.
2. Открыть файл functions.php в папке /wp-content/themes/название темы и в самый конец вставить:
function wp_navigation() {
global $wp_query, $wp_rewrite;
$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; // 1 - выводить текст «Страница N из N», 0 - не выводить
$a["mid_size"] = 5; // сколько ссылок показывать слева и справа от текущей
$a["end_size"] = 5; // сколько ссылок показывать в начале и в конце
$a["prev_text"] = "←"; // текст ссылки «Предыдущая страница»
$a["next_text"] = "→"; // текст ссылки «Следующая страница»
if($max > 1) {
echo "<nav 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 "</nav>";
}
}
Сохранить и отправить файл обратно на сайт.
3. Затем открыть файлы index.php, category.php и прочие, где у вас осуществляется вывод постов, и в нужное место вставить код вызова навигации:
<?php
wp_navigation();
?>
Сохранить и отправить файл на сайт.
На этом установка закончена. Если вы все сделали правильно, то при просмотре сайта можете обнаружить добавленную ранее навигацию.
Настройка
Что касается технической части – в функции вы могли заметить блок:
$total = 0; // 1 - выводить текст «Страница N из N», 0 - не выводить
$a["mid_size"] = 5; // сколько ссылок показывать слева и справа от текущей
$a["end_size"] = 5; // сколько ссылок показывать в начале и в конце
$a["prev_text"] = "←"; // текст ссылки «Предыдущая страница»
$a["next_text"] = "→"; // текст ссылки «Следующая страница»
Он хорошо прокомментирован, и настроить навигацию под свои нужды не составит труда.
Что касается дизайна, в навигации доступны следующие классы:
.navigation – общий блок навигации;
.page-numbers – номера страниц;
.current – активный номер страницы;
.next – ссылка на следующую страницу;
.prev - ссылка на предыдущую страницу;
.pages – блок «Страница N из N».
Цепляетесь за эти данные и настраиваете нужный вам стиль.
Возможные ошибки
Эта навигация тестировалась на WordPress версии 4.7.5 – проблем обнаружено не было. Единственная известная мне на сегодняшний день ошибка – это при определенной структуре URL-адресов не работает навигация в рубриках. С решением проблемы вы можете ознакомиться в данной статье.