Постраничная навигация WordPress: плагин WP-PageNavi. Постраничная навигация WordPress — три полезных плагина
Привет всем!
Продолжаю писать статьи, посвященные навигации сайта на движке WordPress.
И в данном материале я покажу, как делается постраничная навигация без плагинов и с помощью всем известного WP-PageNavi. Как и в случае с , я покажу реализацию несколькими способами, чтобы вы выбрали наиболее подходящий для вас. Да и бывают случаи, когда какой-то способ не работает у кого-то. Поэтому, будет некая подстраховка.
Материал вышел очень объемный и, пожалуй, самый исчерпывающий в сети.
Постраничная навигация (пагинация) - это разбиение информации на страницы. Если взять массу сайтов на Wordpres, то данный феномен ярко выражен в видео списка номеров страниц внизу каждой страницы с анонсами. На моем блоге данная функция имеет следующий вид.
Дизайн может быть разный. Но суть ее одна и та же - разбиение информации на страницы. Как вы знаете, по умолчанию, на главной странице сайта выводятся анонсы записей, которых может быть определенное количество (зависит от выставленных настроек в пункте "Написание").
Если мы не будем разбивать их количество, то они будут выводиться на одной странице. А это не есть хорошо, так как неудобно будет пользоваться сайтом и главная страница будет долго грузиться, ведь с течением времени анонсов будет громаднейшее количество.
Как правило, сейчас в современных шаблонах Wodpress постраничная навигация уже встроена. Но имеется вариант, когда ее и нет. Тогда придется реализовать. Вместо нее может быть разбиение анонсов на страницы в виде ссылок на предыдущие и следующие записи. Это ярко выражено в стандартных шаблонах.
Такой вариант также неудобен, так как при заходе на 3 страницы назад мы не сможем в один шаг вернуться на изначальную страницу. Придется 3 раза кликать на предыдущие записи или на следующие. Постраничная навигация же позволяет более гибко управляться с данным моментом.
В общем, давайте перейдем к ее реализации и первым шагом встроим ее в шаблон без плагина. Данный способ я разобрал в видео-уроке. Рекомендую сначала его посмотреть, а потом уже проштудировать текстовую версию инструкции.
Делаем без плагина
Сейчас я покажу способ, после которого у вас будет точно такая же постраничная навигация WordPress, как и у меня. Делается все очень просто. Потребуется 2 части кода, которые нужно будет разместить в файлах шаблона, а затем прописать стили, чтобы задать оформление. Приступим!
Вот первая часть кода. Ее необходимо разместить в файле functions.php шаблона оформления.
function wp_corenavi() { 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"] = 1; //сколько ссылок показывать слева и справа от текущей $a["end_size"] = 1; //сколько ссылок показывать в начале и в конце $a["prev_text"] = ""; //текст ссылки "Предыдущая страница" $a["next_text"] = ""; //текст ссылки "Следующая страница" if ($max > 1) echo ""; }
function wp_corenavi () { 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" ] = 1 ; //сколько ссылок показывать слева и справа от текущей $a [ "end_size" ] = 1 ; //сколько ссылок показывать в начале и в конце $a [ "prev_text" ] = "" ; //текст ссылки "Предыдущая страница" $a [ "next_text" ] = "" ; //текст ссылки "Следующая страница" if ($max > 1 ) echo " if ($total == 1 && $max > 1 ) $pages = "Страница " . $current . " из " . $max . "" . "\r\n" ; echo $pages . paginate_links ($a ) ; if ($max > 1 ) echo "" ; |
Я разместил код в самое начало файла после открывающего тега
В данном коде мы можем отрегулировать некоторые параметры:
- Строка 10 - если изменить значение 0 на 1, то рядом с номерами страниц будет выводиться надпись вида, например "Страница 3 из 45". Можете сделать такой вариант, но я считаю, что в данном случае он не нужен, так как в номерах страниц и так понятно, сколько страниц на сайте. А активная страница выделяется другим цветом;
- Строки 11 и 12 - слева и справа номера активной страниц должно отображаться определенное количество предыдущих или следующих номеров соответственно. Тут мы выставляем их количество. В данном коде стоит значение 1. Можно поставить 2 или 3. Тут нужно будет немного поэкспериментировать, так как чем больше количество номеров, тем шире будет навигация. Все зависит от ширины шаблона.
wp_corenavi () ; |
Так как постраничная навигация должна отображаться везде, где выводится список анонсов,то необходиммо данный код разместить во всех файлах, где это происходит:
- Главная страница - index.php;
- Страницы рубрик и архивов - category.php и archive.php;
- Страница поиска - search.php.
Кстати, в некоторых шаблонах вывод страниц рубрик и архивов может осуществляться одним файлом. У меня за это отвечает файл archive.php.
Если в вашем шаблоне отсутствует какая либо навигация для разбиения анонсов на страницы, то второй код мы размещаем после вывода контента. Если же у вас имеются предыдущие и следующие ссылки, что более вероятно, то такой вариант легче осуществим, так как вам просто нужно будет их заменить на предоставленный код выше.
Как правило, стандартная навигация в виде предыдущих и след. ссылок выводится с помощью подобного кода.
< div class = "nav-previous" > ← Older posts" , "twentyten" ) ) ; ?> < / div > < div class = "nav-next" > "Newer posts " , "twentyten" ) ) ; ?> < / div > |
У каждого данный код может быть разным, но его основная начинка будет одинаковой. Вам нужно будет найти код, который будет содержать код с названиями next_posts_link и previous_posts_link.
Когда найдете, то смело удаляете данное содержимое из файла и на его место копируете нужный код, выводящий постраничную навигацию.
Таким образом нужно заменить стандартную навигацию на постраничную во всех файлах, где имеется вывод анонсов. Названия файлов я давал выше.
Кстати, если у вас имеются проблемы с данным процессом, то можете обратиться ко мне за помощью в комментариях. Постараюсь помочь.
/* NAVIGATION */.navigation { float: left; width: auto; margin-left: 216px; margin-top: -2px; font-size: 16px; } .navigation > a { float: left; width: 32px; font-weight: 700; text-align: center; color: #637b93; text-decoration: none; margin-left: 1px; padding-top: 7px; } .navigation > .current { float: left; font-weight: 700; width: 29px; text-align: center; color: #c4c8cc; margin-left: 5px; padding-top: 7px; } .navigation > .prev { float: left; width: 32px; height: 34px; background: url("images/bow_left.png") no-repeat; margin-left: 0; } .navigation > .next { float: left; width: 34px; height: 34px; background: url("images/bow_right.png") no-repeat; margin-left: 14px; } .navigation > .dots { float: left; font-size: 14px; font-weight: 700; width: 32px; text-align: center; color: #c4c8cc; padding-top: 7px; }
/* NAVIGATION */ Navigation { float : left ; width : auto ; margin-left : 216px ; margin-top : -2px ; font-size : 16px ; Navigation > a { float : left ; width : 32px ; font-weight : 700 ; text-align : center ; color : #637b93 ; text-decoration : none ; margin-left : 1px ; padding-top : 7px ; Navigation > .current { float : left ; font-weight : 700 ; width : 29px ; text-align : center ; color : #c4c8cc ; margin-left : 5px ; padding-top : 7px ; Navigation > .prev { float : left ; width : 32px ; height : 34px ; background : url ("images/bow_left.png" ) no-repeat ; margin-left : 0 ; Navigation > .next { float : left ; width : 34px ; height : 34px ; background : url ("images/bow_right.png" ) no-repeat ; margin-left : 14px ; Navigation > .dots { float : left ; font-size : 14px ; font-weight : 700 ; width : 32px ; text-align : center ; color : #c4c8cc ; padding-top : 7px ; |
Также необходимо загрузить картинки стрелок перемещения вперед и назад на хостинг в папку images шаблона оформления. . Для загрузки можете пользоваться стандартным файловым менеджером хостинг провайдера. Я же .
Когда разместили коды в файлах functions.php, во всех файлах, выводящих страницы с анонсами и прописали стили, можем проверить работоспособность навигации. У меня все работает и в стандартном шаблоне она имеет следующий вид.
Способ без плагина мы разобрали. Уверен на все 100%, если все сделали, как описал выше, то у вас должно все работать на ура. Был еще второй вариант без плагина, но просмотрев его я понял, что по сути это тот же самый вариант, только немного измененный. Поэтому, я перехожу к способу реализации постраничной навигации с помощью плагина.
Плагин WP-PageNavi
Для начала скачиваете плагин с официальной страницы и устанавливаете его на сайт.
После установки плагина нужно будет также разместить код, который выведет навигацию внизу страницы.
Теперь плагин будет выполнять свою задачу и номера страниц будут иметь следующее оформление.
С одной стороны оформление не ахти, а с другой очень даже ничего, так как не мозолит глаза. Пользователи любят простоту! Поэтому, можно все так и оставить. Если же хотите чего-то более красочного, то сейчас мы с вами рассмотрим некоторые варианты. А пока мы обсудим такую вещь, как настройка wp pagenavi. Настройки имеются и о них стоит поговорить.
Касаемо первого пункта настроек "Шаблоны списка страниц", то в нем ничего менять не нужно. Нас все устраивает. Мы двигаемся к пункту "Настройки списка страниц".
Отмечу, что со всеми параметрами в этом пункте нужно экспериментировать, чтобы найти оптимальное значение для себя. Я лишь объясню вкратце, за что отвечает каждый параметр.
- Использовать стиль - если поставим значение "No", то стили плагина уберутся и номера страниц не будут оформлены;
- Стиль списка страниц - кроме обычного списка номеров страниц мы можем выбрать вариант выпадающего списка;
- Всегда показывать список страниц- настройку не включаем. Нужно, чтобы список отображался только там, где это необходимо;
- Количество страниц для показа - отвечает за количество выводимых номеров страницы в начале списка. По умолчанию, значение стоит 5 и на скриншотах выше вы можете посмотреть, что именно 5 страниц выводятся;
- Диапазон страниц для показа - если на вашем сайте очень много страниц, то данная функция будет крайне полезна. Она будет выводить номера страниц после основного списка со значениями 10, 20, 30, 40 и так далее. Интервал между этими значениями определяется следующим параметром;
- Коэффициент для диапазонов страниц - если выстави значения 5, то диапазон страниц будет иметь вид - 10, 15, 20, 25 и т.д. Если 10, то 10, 20, 30, 40 и так далее. Значения 10 вполне достаточно.
Это все настройки, которые вам нужно выставить в соответствии со своими нуждами. Тут уже каждый по себя отрегулирует.
Самый простой вариант - установка дополнительного плагина, который имеет уже заготовленные стили, а также дает возможность настроить каждый параметр индивидуально. Называется плагин .
После его установки в админ-панели WordPress появляется новый пункт.
После перехода в него сразу можем выбрать уже имеющиеся заготовки дизайна.
Если же хотим настроим стили индивидуально, то в первом пункте настроек "Select Stylesheet" выбираем вариант "Custom" и настраиваем параметры всех элементов (границ и их цветов, цветов и размеров шрифтов, цвета ссылок при наведении курсора мышки и так далее).
Переведу вам все параметры.
- Heading Color - цвет текста "Страница 3 из 45";
- Background Color - цвет фона;
- Active/Current Background color - цвет фона активного номера страницы;
- Font Size - размер шрифта;
- Link Color - цвет ссылки;
- Link Mouse Hover/ Active Hover - цвет ссылки при наведении мышки на номер и при активности номера;
- Link Border Color - цвет границы;
- Link Border Mouse Hover/Active Color - цвет границы при наведении курсора мышки и пи активности номера;
- Align Navigation - расположение навигации (слева, справа, центр).
Значения цветов вы можете искать в интернете или же в программе Photoshop, когда выбираете нужный цвет для заливки.
Вариант с плагином неплохой, но я всегда говорю, что нужно избавляться от лишних плагинов и в данном случае он таковым и является.
Второй вариант осуществляется с помощью редактирования файла стилей, который расположен в папке с плагином Wp-pagenavi на хостинге - pagenavi-css.css.
Данный файл подключается, когда в настройках плагина активна настройка "Использовать стиль pagenavi-css.css". Поэтому, если мы его отредактируем, то после обновления плагина, все стили заменятся на стандартные. Чтобы каждый раз на заменять данный файл и не прописывать стили заново я рекомендую сделать следующую вещь:
- Отредактировать стили в этом файле на свои, придав нужное оформление постраничной навигации;
- Отключить настройку "Использовать стиль pagenavi-css.css";
- Разместить эти стили в основном файле стилей шаблона оформления style.css.
Таким образом эти стили будут работать независимо от плагина. И при обновлении они не будут сбиваться. Это, пожалуй, самый лучший вариант оформления навигации в данном плагине, который я сам бы сделал. Но, к счастью, я использую вариант без плагина, что и вам совету.
Итак, друзья. Материал получится очень хорошим, как на меня. Что вы думаете на этот счет? Надеюсь, что вы все сделали. Если что-то не получается, то в комментариях постараюсь помочь. Пишите, не бойтесь! Я также когда-то очень мучился и мне удалось разобраться.
На данной ноте уже хочу поскорей закончить этот пост, так как сил он отнял уйму. Это я и сделаю. Попрощаюсь и пойду отдыхать, а затем уткнусь в написание нового контента.
С уважением, Константин Хмелев!
Каждый сайт — это по сути целая система навигации и ссылок , по которым перемещаются роботы и посетители. Данная система может обладать разной степенью сложности. Как правило, в ее состав входит главное меню, содержащее в себе ссылки на все основные разделы и статичные страницы, дополнительные меню, (упорядоченный и структурированный список из ссылок на все страницы и разделы). Кроме того, в состав системы навигации интернет-ресурса может входить постраничная навигация .
Она представляет собой набор кнопок со встроенными в них гиперссылками, каждая из которых ведет на определенную страницу. При этом речь идет не о статичных страницах и страницах с постами, а о страницах, на которых размещаются анонсы постов (формат блога).
Что касается настроек, то здесь их не слишком много. Для начала следует указать названия первой и последней, а также следующей и предыдущей страниц. Эти кнопки будут показаны независимо от того, на какой странице вы находитесь в данный момент. Чтобы кнопки от WP Page Navi появились на блоге, необходимо удалить код стандартной навигации в шаблоне, как я уже писал наиболее вероятно, что он будет находится в шаблоне archive.php или content.php. И вместо кода вставить:
Обычно он начинается с такой строчки —