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

Автор: | Рубрика: Блог на Wordpress | Обновлено: 2015-03-14 | Создано:
Просмотров: 1526
Постраничная навигация в WordPress без плагина

Доброго времени суток!

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

В одной из первых своих статей я показывала как при помощи плагина WP-PageNavi настроить постраничную навигацию, посмотреть можно тут. Если Вам лень возиться с кодом, то можете установить данный плагин.

А я приступлю к объяснению вывода постраничной навигации с помощью кода.

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

Первое что нужно сделать - вставить в файл 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 стили. Я покажу, как сделать красивый внешний вид с помощью изображений. Специально для своих читателей выкладываю изображения для постраничной навигации в различной цветовой гаме:

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

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

В файл 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
Также, не ошибитесь с указанием названия картинки.

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

С уважением, Виктория – блог inetsovety.ru

Поделиться ссылкой на пост в соц. сетях
Получать уведомления о новых статьях на e-mail
Комментариев: 14 к статье "Постраничная навигация в WordPress без плагина"
  • Игорь 2015-01-09 в 23:19

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

    Ответить
  • Mаксим 2014-01-29 в 17:34

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

    Ответить
  • Айна 2013-11-07 в 23:27

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

    Ответить
  • Простой 2013-06-20 в 15:54

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

    Ответить
    • Виктория 2013-06-20 в 16:44

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

      Ответить
  • alf2012 2013-06-11 в 19:19

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

    Ответить
  • Простой 2013-03-23 в 20:36

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

    Ответить
  • Простой 2013-03-23 в 18:54

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

    Ответить
    • Виктория 2013-03-23 в 19:04

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

      Ответить
      • Простой 2013-03-23 в 19:07

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

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

        Ответить
        • Виктория 2013-03-23 в 20:12

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

          Ответить
          • Простой 2013-03-23 в 20:18

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

            Ответить
  • Петр 2013-01-31 в 15:42

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

    Ответить
  • нерадивый бухгалтер 2013-01-12 в 12:02

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

    Ответить
Оставить комментарий
Нажмите, чтобы отменить ответ.

Комментарий появится после проверки. Комментарии, содержащие спам и ненормативную лексику будут удалены!