Постраничная навигация в WordPress без плагина
Заметки по Wordpress

Постраничная навигация в CustomPostType без плагина

Вывод постраничной навигации на Custom Post Type ничем не отличается от вывода на обычной станице.
Практически всем блогерам известен плагин WP-PageNavi который выводит постраничную навигацию такого вида как на картинке.

Постраничная навигация в WordPress без плагина

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

И этот метод мы будем использовать для отображения навигации в пользовательских типах сообщений.

[spoiler name=”ВидеоурокДля открытия – нажмите“]

[/spoiler][spoiler name=”Необходимые данныеДля открытия – нажмите“]
Для вывода на странице нужных нам типов пользовательских сообщений надо прописать данный код:
[crayon lang=”php”] ‘works’,’posts_per_page’ => 15,’paged’ => $paged));

while ($wp_query->have_posts()) : $wp_query->the_post();
?>[/crayon]
works – это пример пользовательского типа сообщений и в данном коде идет сразу разбивка на страницы.

Далее воспользуемся помощью Dimox.

Функция, которую он нам предлагает, совсем небольшая по размеру:
[crayon lang=”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 = 1; //1 – выводить текст “Страница N из N”, 0 – не выводить
$a[‘mid_size’] = 3; //сколько ссылок показывать слева и справа от текущей
$a[‘end_size’] = 1; //сколько ссылок показывать в начале и в конце
$a[‘prev_text’] = ‘«’; //текст ссылки “Предыдущая страница”
$a[‘next_text’] = ‘»’; //текст ссылки “Следующая страница”

if ($max > 1) echo ‘

‘;[/crayon]
Данный код необходимо поместить в файл functions.php вашего шаблона. В функции всего пять опций.  Для понятности он написал комментарии в коде.Для того, чтобы вывести навигацию в нужном месте, вставляйте в шаблон следующий код:
[crayon lang=”php”][/crayon]
Проверяем навигация появилась, но =-O увы при переходе выдает ОШИБКУ…. но и на этот случай найдено решение
Открываем файл functions.php вашего шаблона и к пользовательскому типу сообщения дописываем строчку:
[crayon lang=”php”]add_rewrite_rule( ‘works/page/([0-9]+)/?$’, ‘index.php?pagename=works&paged=$matches[1]’, ‘top’ );[/crayon]
Теперь все должно работать 😉
[/spoiler]На этом все пользуйтесь, что не понятно пишите комментарии.

Новые посты

Замена логотипа wordpress

Гордеев Игорь

Выделяем комментарии автора в wordpress

Гордеев Игорь

Как вставить рекламу в RSS WordPress

Гордеев Игорь

8 комментариев

Ann 19.12.2011 / 15:11

А если необходимо вывести постраничную навигацию не на главной, а на отдельной странице, то выдает ошибку. Как можно это исправить?

Ответить
Garri 19.12.2011 / 16:34

@Ann: Надо больше конкретики. И в данном видеоуроке показано какраз как навигация выводиться на странице с пользовательскими постами.

Ответить
Ann 19.12.2011 / 18:29

Уже все впорядке. Было 2 ошибки. Во-первых не туда вставляла последнюю строчку. А во-вторых надо было обновить в админке количество отображаемых постов. После обновления всё заработало. Спасибо вам за статью.

Ответить
dreamerov 03.02.2012 / 18:20

Вопрос по навигации. Как поправить функцию, чтобы была кнопка вывести все записи.

Ответить
Гордеев Игорь 03.02.2012 / 19:28

Не совсем понял смысл этой доработки, а если этих записей будет например 1000 шт.

Ответить
Ольга 24.09.2012 / 03:16

Скачала себе давно этот плагин, но он у меня почему-то не выводил номера страниц, все оставалось по старому. Недавно нашла его у себя, опять установила, активировала, и ничего…
Может и вправду попробовать самой коды прописать? 🙂

Ответить
Гордеев Игорь 24.09.2012 / 15:29

Попробуйте, лучше всяких плагинов.

Ответить
Inco 26.11.2012 / 15:17

Не понял что значит пользовательского типа посты? А какие еще бывают? Этот метод пойдет на обычном блоге?

Ответить

Оставить комментарий