Постраничная навигация в WordPress без плагина (альтернатива WP-PageNavi)

Практически любой блоггер, который ведет свой блог на движке WordPress, знаком с плагином WP-PageNavi, который выводит постраничную навигацию такого вида: Но не каждый знает (включая меня до недавнего времени), что WordPress имеет встроенную функцию (начиная аж с версии 2.1), которая реализует практически тот же самый ...
Комментарии (228)
Установил все работает. Спасибо.Но есть вопросы:
1 Как увеличить размер (Страница 1 из 65 1 2 3 4 … 65 »)? У меня мелко отображается.
2 Почему показывает больше страниц чем на самом деле? Например из реально существующих 17 страниц — отображает 65 страниц.
1. С помощью CSS.
2. Не представляю.
А по подробней (1. С помощью CSS.) можно ?
Вам сюда.
Привет. Для начала, спасибо за удобное решение, часто ним пользуюсь.
Но есть ситуация когда нельзя использовать этот метод.
Если включен ЧПУ, то при переходе на след страницу в конце УРЛ добавляется «page/2» например.
Проблема возникает когда я использую в урл свои переменные.
Тогда при переходе на другую страницу получается урл site.ru?key=1/page/2/
а нужно site.ru/page/2/?key=1
Подскажите, пожалуйста, можно это как-то решить?
Скорее всего нет.
Получите ссылки на страницы в виде массива, затем сделайте обход этого массива и замените нужные данные в каждой ссылке например регуляркой. Хотя в функции paginate_links есть возможно подходящие вам параметры, например ‘format’, думаю если верно задать этот параметр, то ваша проблема может быть решена )
Если я правильно вас понял, конечно ;)
http://codex.wordpress.org/Function_Reference/paginate_links
Спасибо за код…всё работает прекрасно…в связи с этим, добавлю и свой вопрос (Тимуру задал-не дождался ответа)…а можно как нибудь «прикрутить» данный код или можно другой, если есть конечно…, к скучному и однообразному оформлению стандартной функции в Вордпресс разбиения больших форматов записей — nextpage ?
Нет, это две абсолютно разные функции.
А случайно — нет готовых решений…или задумок ?
У меня нет.
Здравствуйте! Подскажите, а где можно поменять цвет страниц, а то получаются серенькие?
Вот так:
Помогите решить проблему. Пагинация стоит вашим способом, после обновления вп, все стало работать не правильно. Замечено было не сразу поэтому теперь понять не могу как сделать чтобы работало.
ЧПУ. сайт с рецептами.
ссылка на статью например
pirogblog(.)com/recepti/keksyi-aristokrat
При пагинации выдает ошибку 404 открывая ссылки такого вида
pirogblog(.)com/recepti/page/3 начинает работать если вручную прописать в адрес category, как в примере с тэгами ниже.
Хотя пагинация в тэгах работает корректно и слово тэг не теряется и при пагинации ссылка остается как надо.
pirogblog(.)com/tag/vtoryie-blyuda/page/3
Надеюсь понятно объяснил)
То есть для отдельных статей category не нужна и в ссылке она не присутствует, а в пагинации на оборот должна быть, иначе 404
Не представляю, в чем проблема.
Вопрос:
А почему в архиве автора не работает?
То есть сайт.ру/author/его имя/
Не знаю. Должно работать.
Приветствую! Спасибо за код, все работает, все показывает.
Возник вопрос, погуглил не нашел, а можно сделать кнопку «показать все», по нажатию на которую, будут все страницы сразу отображаться? Заранее спасибо.
Такой возможности, к сожалению, нет.
Жаль. А то удобная кнопка, правда встречается только в интернет-магазинах.
А как такое же и для комментариев сделать?
Постраничная навигация в комментариях WordPress без плагина
Подключил все отлично работает, но есть один нюанс когда нажимаешь на последнию страницу в навигации , навигация исчезает в чем дело так и должно быть??? заранее спасибо
Не представляю.
что может быть не так????
Не подскажите — почему в метках не работает навигация? Выдаёт, что страница не найдена при переходе на вторую и так далее.
Дим как подправить функцию чтоб HTML код принял такую конструкцию ?
<a href="#" rel="nofollow">«</a>
<a href="#" rel="nofollow">1</a>
<a href="#" rel="nofollow">2</a>
<a href="#" rel="nofollow">3</a>
<a href="#" rel="nofollow">4</a>
<a href="#" rel="nofollow">5</a>
<a href="#" rel="nofollow">»</a>
это навигация от Bootstrap
Никак, исходный код вшит в движке.
Исходный код да, но вот эта часть
echo $pages . paginate_links($a)
если переписать аргумент
'%_%'
,'format' => '?page=%#%'
,'total' => 1
,'current' => 0
,'show_all' => False
,'end_size' => 1
,'mid_size' => 2
,'prev_next' => True
,'prev_text' => __('« Previous')
,'next_text' => __('Next »')
,'type' => 'plain'
,'add_args' => False
,'add_fragment' => ''
);
echo paginate_links( $args );
?>
type (строка)
Формат возвращаемых данных.
plain — строка ссылок разделенная пробелами. По умолчанию;
array — массив данных (для дальнейшей обработки);
list — html список .
хотелось бы приладить list — html список разве это не реально? просто не приложу ума куда это поправить.
Все ссылки на другие страницы у Вас будут иметь конструкцию с содержанием или /page или ?page= (в зависимости от настроек ЧПУ)
Пропишите в роботс.тхт чтобы страницы с такими урл не индексировались.
Результат тот-же
Вот уже второй час пытаюсь установить эту навигацию у себя на сайте, пока тщетно…
Привет, Дмитрий.
Твоими наработками уже давно пользуюсь.
В том числе и данной альтернативой pagenavi.
Заметил недавно одну интересную особенность, которая есть в pagenavi и которую хотелось бы реализовать.
В твоей версии ссылка на первую страницу рубрики (если мы находимся на второй) выглядит так: https://dimox.name/category/wordpress/page/1/
У тебя она сразу редиректится на /category/wordpress/, у меня почему-то нет. Но не в этом суть.
Можно доработать твою функцию, чтобы ссылка на первую страницу была без /page/1?
Я с этим не могу ничего сделать. Это заложено во встроенной в WordPress функции paginate_links.
В общем у всех, кто использует код из данной статьи, одна беда:
Вариант 1: сайт.ру/category/категория/page/2 — работает
Вариант 2: сайт.ру/категория/page/2 — не работает (но сюда ссылается)
И че делать все хз как я погляжу…
Ладно, копируем все что я ниже написал…
И добавляем этот код в functions.php
Тогда у вас будет работать и первый и второй варианты. Ну что тоже не очень хорошо. Можно в robots.txt закрыть /category/
или сделать редирикт, но тут сами решайте.
Автор, обнови пост.
Здравствуйте.
А вот есть еще одна беда.
Когда нажимаешь допустим на 6 страницу из 8 мной поставленных в
$a['mid_size']
начинает отображатся 12 страниц…И что не так?
как что, мне надо что бы отражалось всегда максимум 8 страниц
Если указано 8, то слева и справа от текущей должно быть максимум по 8 страниц. Если больше — причина в чем-то другом, а не в коде пагинации. Я ни разу с такой проблемой не сталкивался.
мне надо что бы было не по бокам, по восем, а вообще что бы максимальное число страниц было 8
Такой возможности нет.
Благодарю! Причем за многие посты. Долой плагины))
а можно ли убрать «страница N из NN», чтобы были просто числа? Такого типа «1,2,3…5…10 >>»
Удалите строку:
Здравствуйте! Спасибо за страничную навигацию, пригодилась!!! Я новичок, делаю сайт без шаблона WordPress, кодировать учусь сама. Столкнулась с проблемой перехода статей со страницы на страницу. Стала в ступор , не знаю как это решается. Допустим, на главной странице превью 10 статей, на 2й стр. их только 2. Пишу еще 1 статью и хочу, чтобы новая осталась на главной странице, а на 2й странице было уже 3 статьи. Возможно ли как-то это реализовать не перенося превью статьи в ручную? Посоветуйте пожалуйста, как правильно привязать статьи к страницам. Очень надеюсь на вашу подсказку!
С такими вопросами лучше обращаться на специализированные форумы по PHP.
Спасибо, обращусь туда. А как вы вобщем думаете, это с помощью плагина делается, или CSS, или JavaScript или того и другого вместе?
Если я правильно понял, что вы пытаетесь сделать, то это чистый PHP.
Ого! Я его еще не изучала! Буду читать. Спасибо большое за быстрые ответы!!!)
Значит точно в HTML ничего придумать нельзя? (Я в нем больше соображаю)
Ну раз вы не знаете PHP, вы это не сделаете. Нужно разбираться с WP_Query и шаблонами страниц к примеру. Может быть 2 страницы с двумя шаблонами, на одной будет получаться по 10 постов, на другой по 3, или там как вам угодно, 10 постов из одной категории, на другой 3 их другой.
Я вот не понял зачем вообще тут к $wp_rewrite привязываться, в шаблоне можно проверить номер текуЩей страницы + количество постов общее + сколько всего на странице в опциях указано и считать. Видно я про что-то забыл.
HTML тут не при чем. Можете цветочки полить, может по страницам само разобьется все с таким же успехом ) Нууу конечно можно всегда выводить все посты, и магию какую-то сделать с JS и HTML чудесную.