Артём Мáлков

Как добавить постраничную навигацию по постам в WordPress без плагина?

28 июн1 коммАртём Мáлков

Этот вопрос задают множество вебмастеров, создавая сайты на 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"] = "&larr;"; // текст ссылки «Предыдущая страница»
$a["next_text"] = "&rarr;"; // текст ссылки «Следующая страница»

Он хорошо прокомментирован, и настроить навигацию под свои нужды не составит труда.

Что касается дизайна, в навигации доступны следующие классы:

.navigation – общий блок навигации;
.page-numbers – номера страниц;
.current – активный номер страницы;
.next – ссылка на следующую страницу;
.prev - ссылка на предыдущую страницу;
.pages – блок «Страница N из N».

Цепляетесь за эти данные и настраиваете нужный вам стиль.

Возможные ошибки

Эта навигация тестировалась на WordPress версии 4.7.5 – проблем обнаружено не было. Единственная известная мне на сегодняшний день ошибка – это при определенной структуре URL-адресов не работает навигация в рубриках. С решением проблемы вы можете ознакомиться в данной статье.

Рекомендуем к просмотру
Как вывести все записи на страницу в WordPress?
Статьи и советы
Решаем проблему с постраничной навигацией в рубриках на WordPress
Статьи и советы
Три варианта установки плагина на сайте в WordPress
Статьи и советы
1
комментарий
Форма комментирования этого поста скрыта. Авторизуйтесь, чтобы расширить привилегии гостевого посещения и получить необходимую помощь от сообщества Pandoge.
    • 1
    766
      •  Гости
    12 авг в 18:34

    Еще бы красивых стилей оформления созданной навигации и статье не было бы цены.

Подняться наверх
Регистрация на сайте
Pandoge - уникальный проект, который собрал на своих страницах большой опыт многих людей в сфере сайтостроения.Присоединяйся и ты к сообществу, получай неограниченные знания и начинай творить свою мечту!Нажимая кнопку «Регистрация» вы даете согласие на обработку своих персональных данных.
Имя и фамилия
E-mail
Логин
Пароль
Регистрация
Pandoge