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

Как делается постраничная навигация без плагинов

Реферальные банеры

Доброго времени суток! Тема сегодняшней статьи - "Как установить на блоге WordPress постраничную навигацию без плагина и с ним".  Всем известно, что плагины создают дополнительную нагрузку на хостинг, поэтому нужно стараться, по возможности, заменять функции, выполняемые тем или иным плагином, на код.

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

Первым делом сделайте, на всякий случай, резервную копию файлов шаблона, чтобы в случае неправильно редактирования не испортить шаблон.

Первое что нужно сделать - вставить в файл functions.php код функции, чтобы не запутаться и не совершить ошибок, вставляйте код сразу после тега <?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'] = 5; //сколько ссылок показывать слева и справа от текущей    $a['end_size'] = 1; //сколько ссылок показывать в начале и в конце    $a['prev_text'] = '«'; //текст ссылки "Предыдущая страница"    $a['next_text'] = '»'; //текст ссылки "Следующая страница"      if ($max > 1) echo '
';  }  

Против некоторых полей, Вы можете видеть пояснения на русском, поэтому на свое усмотрение можете поменять эти настройки.
Далее нужно на страницах, где требуется вывод постраничной навигации (архивы, поиск, главная) установить код:

<!--?php if (function_exists('wp_corenavi')) wp_corenavi(); ?-->

На картинке ниже, Вы можете посмотреть куда нужно вставлять код в файле:

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

Заключительным шагом является настройка внешнего вида. В частности нужно задать вывод кнопок навигации, либо с помощью картинки, либо через css стили. Я покажу, как сделать красивый внешний вид с помощью изображений. Специально для своих читателей выкладываю изображения для постраничной навигации в различной цветовой гаме:

      bottom-red   bottom-blue   

Сохраните себе в двух подходящих цветах. Одна кнопка будет для активной страницы, а другая для всех остальных.

В файл style.css нужно добавить следующий код:

.navigation {  text-align:center; margin:30px 0;  }  a.page-numbers {  background:url(images/act_nav.png) no-repeat; width:25px; height:25px; display: inline-block; padding:5px 0 0 0; font-weight:bold;  }  a:hover.page-numbers{  background:url(images/activ_nav.png) no-repeat; color:#fff; text-decoration:none;  }  span.page-numbers.current {  background:url(images/activ_nav.png) no-repeat; color:#fff; width:25px; height:25px; display: inline-block; padding:5px 0 0 0; font-weight:bold;  }

Важно правильно указать путь до картинок постраничной навигации на хостинге! Картинки нужно загружать в папку с темой, которая находится по такому адресу public_html/wp-content/themes/тема/images
Также, не ошибитесь с указанием названия картинки.

Установка плагина WP-PageNavi

  1. Скачиваем плагин WP-PageNavi на русском языке с сайта wordpress.org
  2. В админ панели Вашего блога, в меню слева выбирайте Плагины - Добавить новый. Далее переходите на вкладку Загрузка. Нажимаете Обзор... и указывайте путь к архиву с плагином на компьютере. После этого нажимайте Установить. После того, как плагин будет загружен, нажмите Активировать плагин.
  3. Для отображения кнопок навигации под страницами, необходимо добавить следующий код:
    <?php wp_pagenavi(); ?>
    Данный код добавляется в те файлы шаблона, которые отвечают за отображение страниц архива(arhive.php), поиска (search.php) и главной стараницы - index.php.
  4. Раньше у Вас на сайте была установлена навигация в виде: Следующая страница, Предыдущая. Необходимо заменить код, который отвечает за отображение этой навигации. Откройте файл с кодом, например, arhive.php нажмите CTRL+F на клавиатуре и введите в поиск внизу фразу navigation.
  5. Найдите фрагмент кода, который выглядит следующим образом <div class="navigation"> ... <div class="alignright">...</div> и замените его указанным выше кодом.
  6. Сделайте аналогичную замену и на оставшихся страницах.

Если Вы сделали все правильно, то перейдя в архив записей, Вы увидите внизу строку постраничной навигации.

На этом установка плагина WP-PageNavi завершена. Теперь Ваш блог стал еще более удобным для Ваших посетителей.

Вот собственно и все. Надеюсь у Вас не возникнет проблем с настройкой.

Понравилась статья? Поделиться с друзьями:
Как заработать деньги в интернете
Комментарии: 17
  1. Игорь

    Я рад что подписался на ваш блог, каждая статья на вес золота, есть чем воспользоваться и много нужного для применения! Огромное спасибо за рекомендации и подробнейшие объяснения!

    1. Люся

      Согласна с Игорем, хотела спросить его, вы себе поставили постраничную навигацию с плагином или без него?

  2. Mаксим

    Виктория, спасибо за статью, все получилось с первого раза ! В моей теме изначально не было данной навигации (все сводилось к перелистыванию страниц без ее нумерации) и все никак руки не доходили прикрутить улучшенную навигацию для удобства посетителей. Осталось только с файлом стилей поработать и оформить под дизайн своего сайта. Успехов! :grin:

  3. Айна

    на моем сайте не сработало

    1. Люся

      Не для каждой темы блога код наверно подходит. Темы пишут разные по профессионализму люди.

  4. Простой

    К сожалению на странице меток навигация не работает. Отображает только первую страницу, а при переходе на вторую и так далее выдаёт 404. И с плагином и с кодом не в какую.
    Не подскажите как это исправить??

    1. Виктория (автор)

      Честно говоря не знаю. Попробуйте обратиться к программистам на форуме веб-мастеров.

  5. alf2012

    Префиксы рубрик — это ярлыки? У меня ярлыки заданы, но в адресах постов их не видно.

  6. Простой

    Нашёл решение. Вставить в functions.php:
    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;
    }

  7. Простой

    А как сделать, чтобы навигация работала без префикса для рубрик?

    1. Виктория (автор)

      Не совсем понятен вопрос. Напишите детальнее, что нужно Вам изменить.

      1. Простой

        Окей. И так допустим:
        сайт.ру/префикс для рубрик/рубрика/
        Так постраничная навигация работает.

        А если:
        сайт.ру/рубрика/
        то так уже не работает.

      2. Виктория (автор)

        Вижу не работает, во втором случае. В связи с этим возникает на вашем сайте и проблема дублей, так как рубрика доступна по разным адресам. Проблема в префиксе к рубрикам. Скорее всего нужно редактировать сам код функции, которая отвечает за вывод постраничной навигации. У меня ни на одном сайте на вордпресс нет префиксов в рубриках, поэтому как отредактировать код, чтобы работал с префиксами подсказать не могу. Попробуйте поспрашивать на форумах вебмастеров.

      3. Простой

        Спасибо за ответы. Нужно будет подумать как вопрос в поисковике задать на эту проблему )) Ещё раз спасибо.

  8. Петр

    Спасибо,очень помогло,так как не силен пока в синтаксисе и достаточно долго искал как ,именно для этого кода ,прописать стили.

  9. нерадивый бухгалтер

    Вот до постраничной навигации у меня никак не дойдут руки, так и стоит стандартное «предыдущие», Я в код, обычно, лезу с большой не охотой))

    1. Люся

      Для ленивых, незнающих вместо кода есть плагины постраничной навигации.

Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:
Нажимая на кнопку "Отправить комментарий", я даю согласие на обработку персональных данных и принимаю политику конфиденциальности. Комментарий появится после проверки. Комментарии, содержащие спам и ненормативную лексику будут удалены!

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.