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

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

Практически любой блоггер, который ведет свой блог на движке WordPress, знаком с плагином WP-PageNavi, который выводит постраничную навигацию такого вида: Но не каждый знает (включая меня до недавнего времени), что WordPress имеет встроенную функцию (начиная аж с версии 2.1), которая реализует практически тот ...

Полезные комментарии (1)
Комментарии (211)
  1. 1
    Александр

    День добрый
    Не подскажете как сделать навигацию следующий-предыдущий пост по такому принципу:
    например нахожусь в категории «А» и соответственно ссылка на предыдущий пост должна вести на предыдущий пост из той же категории «А», но если таких постов нет, то выводится ссылка на последний пост из другой категории.
    Плагинов на эту тему много, но найти подходящий не удается.
    Спасибо

  2. 2
    ArmYan

    Привет! Можете помочь написать такую пагинацию для конкретного плагина?
    Плагин я написал(задача с новой работы), осталось только пагинацию написать. Плагин для регистрации работников(создает в базе новую таблицу для сохранении данных о работников: Worker_id, Name, Mail), на админ странице надо вывести список работников по 10 штук, и чтобы были ссылки Next, Prev, Last, First. Заранее большое спасибо ! ! !

  3. 3

    здравствуйте димокс! вот у меня такая проблема на блоге, постраничаня навигация выдает 404 ошибку. именно 4 страница когда переключаю на нее. в хтмл я не силен, не могли бы вы подсказать что это могло бы быть и как решить данную проблему?) ЗАРАНЕЕ ОГРОМНОЕ СПАСИБО!

  4. 5

    решил проблему :) может кому то надо будет) нужно зайти в админку и перейти в раздел Параметры -> Чтение (/wp-admin/options-reading.php) и в поле «На страницах блога отображать не более» указать нужное кол-во постов на страницу. указывать нужно именно столько сколько у вас выводиться с помощью шоткода шаблона ) важно совпадение)

  5. 7

    Как все замечательно написано, но не для тех, кто первый раз это делает. Подскажите пожалуйста, в каком месте в файле functions.php вставлять код, приведенный первым. И вы пишете, чтобы вывести навигацию в нужном месте, вставляйте в шаблон следующий (второй) код. Где вставлять в шаблон, в какой шаблон? Не понятно, извините.

    • 8

      Подскажите пожалуйста, в каком месте в файле functions.php вставлять код, приведенный первым.

      Вставьте в самом конце перед:

      ?>

      Где вставлять в шаблон, в какой шаблон?

      Все шаблоны устроены по-разному, поэтому, не видя кода, трудно сказать, в какое именно место.

  6. 9

    Привет. Недавно решил обновить дизайна сайта, а также код очистить, от лишнего, твой код на 100% процентов подошел. Спасибо!

  7. 10

    Юхуу все чики брики ребята нормальная функция ))) А да Димок кстати а че правда что плагины работают быстрее чем вот все в ручную делать. Или это у кого откуда руки растут ? ))

  8. 12
    Сергей

    Я все добавил. На катом странице. по нажатию он меняет адресную строку …uslugi/page/3… но ничего с навигацией не происходит и страница новая не отображается. что я могу неправильно делать?

  9. 17
    Сергей

    я добавил код таким образом, но при переходе на вторую он выводит то что идет по циклу

    Нет записей

  10. 18
    Сергей

    у меня и при стандартном структуре не работает. как правильно сделать? ОЧЕНЬ НУЖНА ПОМОЩЬ!!!!!

  11. 19
    Сергей

    query_posts( array( ‘cat’ => 8, ‘paged’ => get_query_var(‘paged’) ) ); — помог этот запрос;
    только теперь не могу разобраться как добавить сюда — он у меня сортировал и выводил посты

  12. 20
    Сергей

    query_posts($order); — вот этот

  13. 21
    css builder

    Есть один маленький но очень влияющий на дизайн проблем. Все работает отлично, но как присвоить последней странице свой id или класс? все выглядит замечательно до тех пор пока вы не напишите 10 и более страниц контента. После этого вы поймете о чем я. Цифры в навигации просто смещается по пэддингам так как и все остальные цифры до 10ти. margin:0 auto; — почему то не работает и приводит к ужасающему виду, а так все цифры после десятки выходят за границы элеманта навигации. Что делать?

  14. 29
    Игорь

    респектище автору — на всех своих блогах так делаю — перепробовал всякие плагины и все по…

  15. 30

    Доброго здоровья! Прикрутил себе Ваш вариант пагинации — работает. Спасибо полезная штука.

  16. 31
    Андрей

    Не получилось… Код выводится, как в админке в самом верху, так и над шапкой блога: http://s2.ipicture.ru/uploads/20130208/ZlG5iSjk.jpg

  17. 33
    Андрей

    Dimox, в том то и дело, что верно… С других блогов пробовал вставить иные коды — результат такой же. Весь код проявляется сверху :(
    Что может так повлиять?

  18. 35
    Андрей

    Я понял, нет смысла доказывать, что не дурак. Ведь у большинства работает, а если так то идите Вы батенька куда подальше (это я про себя).
    Ещё раз повторюсь — код установлен верно.
    Косяки проявившиеся мне не понятны.
    Спасибо за помощь Dimox.

  1. 1

    В общем у всех, кто использует код из данной статьи, одна беда:
    Вариант 1: сайт.ру/category/категория/page/2 — работает
    Вариант 2: сайт.ру/категория/page/2 — не работает (но сюда ссылается)

    И че делать все хз как я погляжу…
    Ладно, копируем все что я ниже написал…

    //Удаляем category из УРЛа категорий
    add_filter('category_link', create_function('$a', 'return str_replace("category/", "", $a);'), 9999);
    
    add_filter('user_trailingslashit', 'remcat_function');
    function remcat_function($link) {
    	return str_replace("/category/", "/", $link);
    }
    add_action('init', 'remcat_flush_rules');
    function remcat_flush_rules() {
    	global $wp_rewrite;
    	$wp_rewrite->flush_rules();
    }
    add_filter('generate_rewrite_rules', 'remcat_rewrite');
    function remcat_rewrite($wp_rewrite) {
    	$new_rules = array('(.+)/page/(.+)/?' => 'index.php?category_name='.$wp_rewrite->preg_index(1).'&paged='.$wp_rewrite->preg_index(2));
    	$wp_rewrite->rules = $new_rules + $wp_rewrite->rules;
    }

    И добавляем этот код в functions.php
    Тогда у вас будет работать и первый и второй варианты. Ну что тоже не очень хорошо. Можно в robots.txt закрыть /category/
    или сделать редирикт, но тут сами решайте.

    Автор, обнови пост.