Генератор случайных чисел   •   Online-инструменты
417 просм
1 комм
Поделиться:

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

Этот вопрос задают множество веб-мастеров, создавая сайты на WordPress. И это правильно, если что-то можно сделать без плагина – лучше делать без плагина, поскольку так мы сохраняем скорость работы нашего сайта.

В WordPress навигация активируется с помощью несложной функции, о которой я сейчас расскажу.

Установка

Для того чтобы добавить навигацию на ваш сайт, необходимо:

1. Подключиться к сайту по FTP.

2. Открыть файл functions.php в папке /wp-content/themes/название темы и в самый конец вставить:

function np_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 np_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-адресов не работает навигация в рубриках. С решением проблемы вы можете ознакомиться в данной статье.

1
комментарий
Мика
12.08 в 18:34
Еще бы красивых стилей оформления созданной навигации и статье не было бы цены.
  • 0
Оставить комментарий:
Нажимая кнопку «Отправить» вы даете согласие на обработку своих персональных данных.
Ваше Имя
Ваш E-mail
Текст комментария