Как сделать числовую пагинацию в WordPress без плагинов. Постраничная навигация WordPress — три полезных плагина

Технически функцию можно использовать для создания пагинации где угодно. Параметр base используется как ссылка на УРЛ, которая будет использована для создания ссылки пагинации. Параметр format будет заменен на номер пагинации. Эта функция является ядром для всех функций пагинации в WordPress.

Параметр type контролирует в каком формате будет возвращен результат:

  • plain - просто ссылки разделенные переносом строки (По умолчанию).
  • array - в виде массива данных для дальнейшей обработки в PHP
  • list -
      список.

    Числовой параметр total должен получить общее количество страниц пагинации, а параметр current номер текущей страницы пагинации. Пример параметра base - http://example.com/all_posts.php%_% , где %_% - обязательная часть, которая будет заменена тем что указано в параметре format . Пример format - ?page=%#% , здесь %#% , также обязательная часть, которая будет заменена числом текущей страницы пагинации. Вообще, в base можно сразу указать например так: http://example.com/all_posts.php?page=%#% , а в формат пусто ("").

    Чтобы добавить ссылки на предыдущую/следующую страницу, нужно включить логический параметр prev_next (указать ему true), а затем можно установить текст ссылок указав параметры prev_text/next_text (предыдущая ссылка/следующая ссылка).

    Если включить параметр show_all , то будут выведены абсолютно все ссылки пагинации, вместо нескольких ссылок вокруг текущей и нескольких конечных ссылок. По умолчанию, этот параметр выключен, а сколько ссылок показывать вокруг текущей страницы и на концах контролируется параметрами: end_size и mid_size .

    Параметры before_page_number и after_page_number позволяют обернуть само число пагинации, например в для стилизации. А вообще, эти параметры были созданы для того, чтобы указать текст для роботов, чтобы при просмотре кода, было понятно для чего предназначены ссылки.

    В результате вы получите нечто подобное: « предыдущая 1 … 3 4 5 6 7 … 9 следующая »

    Хуки из функции
    Возвращает

    Использование

    Шаблон использования

    $args = array("base" => "%_%", "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" => "", "before_page_number" => "", "after_page_number" => ""); echo paginate_links($args); $args(строка/массив) Аргументы для построения пагинации.
    По умолчанию: предустановки

    Аргументы параметра $args

    base(строка) База для замены по формату. В конструкции: http://example.com/all_posts.php%_% %_% будет заменено значением аргумента format (см. ниже).
    По умолчанию: "%_%" format(строка) Формат замены.
    По умолчанию: "?page=%#%" total(число) Общее количество страниц, которые участвуют в пагинации.
    По умолчанию: 1 current(число) Номер текущей страницы пагинации. show_all(логический) Если выставить в true, то в списке ссылок будут показаны все страницы участвующие в пагинации. По умолчанию показывается только несколько ссылок спереди и сзади номера текущей страницы, количество ссылок регулируется аргументами: end_size и mid_size .
    По умолчанию: false end_size(число) Сколько номеров показывать сначала и конца ("предыдущая 12 ... 4 ... 89 следующая").
    По умолчанию: 1 mid_size(число) Сколько номеров показывать до и после текущего номера (... 123 5 678 ...).
    По умолчанию: 2 prev_next(логический) Выводить боковые ссылки "предыдущая/следующая страница". По умолчанию выводятся, если ненужно выводить эти ссылки пишем false.
    По умолчанию: ture prev_text(строка) Текст ссылки "предыдущая страница".
    По умолчанию: __("« Previous") next_text(строка) Текст ссылки "следующая страница".
    По умолчанию: __("Next »") type(строка)

    Формат возвращаемых данных.

      plain - строка ссылок разделенная пробелами. По умолчанию;

      array - массив данных (для дальнейшей обработки);

    • list - html список
        .
        По умолчанию: "plain"
      add_args(логический) Массив аргументов (переменных запроса), которые нужно добавить к ссылкам.
      По умолчанию: false add_fragment(строка) Текст который добавиться ко всем ссылкам.
      По умолчанию: "" aria_current(строка) Значение атрибута aria-current . Возможные значения: "page", "step", "location", "date", "time", "true", "false". С версии 4.9.
      По умолчанию: "page" .

      Примеры

      #1 Пагинация, аналог wp_pagenavi

      Чтобы добавить пагинацию на страницу результатов поиска или страницу архивов, используйте такой код:

      Function my_pagenavi() { global $wp_query; $big = 999999999; // уникальное число для замены $args = array("base" => str_replace($big, "%#%", get_pagenum_link($big)), "format" => "", "current" => max(1, get_query_var("paged")), "total" => $wp_query->max_num_pages,); $result = paginate_links($args); // удаляем добавку к пагинации для первой страницы $result = preg_replace("~/page/1/?([\""])~", "\1", $result); echo $result; } // Теперь, где нужно вывести пагинацию используем // my_pagenavi();

      #2 Пример с произвольным запросом WP_Query

      Когда записи получаются и выводятся отдельным запросом с помощью new WP_Query установите в параметр total свойство $max_num_pages . На примере:

      Наш произвольный запрос и пагинация для него:

      Это лишь демонстрационный пример, потому что он не учитывает основной запрос, в котором может получаться 404 страница и до этого кода дело вообще не дойдет.

      5, "category_name" => "gallery", "paged" => $paged,)); // цикл вывода полученных записей while($the_query->have_posts()){ $the_query->the_post(); ?> str_replace($big, "%#%", esc_url(get_pagenum_link($big))), "format" => "?paged=%#%", "current" => max(1, get_query_var("paged")), "total" => $the_query->max_num_pages)); ?>

      Код paginate links : wp-includes/general-template.php VER 5.1.1

      max_num_pages) ? $wp_query->max_num_pages: 1; $current = get_query_var("paged") ? intval(get_query_var("paged")) : 1; // Append the format placeholder to the base URL. $pagenum_link = trailingslashit($url_parts) . "%_%"; // URL base depends on permalink settings. $format = $wp_rewrite->using_index_permalinks() && ! strpos($pagenum_link, "index.php") ? "index.php/" : ""; $format .= $wp_rewrite->using_permalinks() ? user_trailingslashit($wp_rewrite->pagination_base . "/%#%", "paged") : "?paged=%#%"; $defaults = array("base" => $pagenum_link, // http://example.com/all_posts.php%_% : %_% is replaced by format (below) "format" => $format, // ?page=%#% : %#% is replaced by the page number "total" => $total, "current" => $current, "aria_current" => "page", "show_all" => false, "prev_next" => true, "prev_text" => __("« Previous"), "next_text" => __("Next »"), "end_size" => 1, "mid_size" => 2, "type" => "plain", "add_args" => array(), // array of query args to add "add_fragment" => "", "before_page_number" => "", "after_page_number" => "",); $args = wp_parse_args($args, $defaults); if (! is_array($args["add_args"])) { $args["add_args"] = array(); } // Merge additional query vars found in the original URL into "add_args" array. if (isset($url_parts)) { // Find the format argument. $format = explode("?", str_replace("%_%", $args["format"], $args["base"])); $format_query = isset($format) ? $format : ""; wp_parse_str($format_query, $format_args); // Find the query args of the requested URL. wp_parse_str($url_parts, $url_query_args); // Remove the format argument from the array of query arguments, to avoid overwriting custom format. foreach ($format_args as $format_arg => $format_arg_value) { unset($url_query_args[ $format_arg ]); } $args["add_args"] = array_merge($args["add_args"], urlencode_deep($url_query_args)); } // Who knows what else people pass in $args $total = (int) $args["total"]; if ($total < 2) { return; } $current = (int) $args["current"]; $end_size = (int) $args["end_size"]; // Out of bounds? Make it the default. if ($end_size < 1) { $end_size = 1; } $mid_size = (int) $args["mid_size"]; if ($mid_size < 0) { $mid_size = 2; } $add_args = $args["add_args"]; $r = ""; $page_links = array(); $dots = false; if ($args["prev_next"] && $current && 1 < $current) : $link = str_replace("%_%", 2 == $current ? "" : $args["format"], $args["base"]); $link = str_replace("%#%", $current - 1, $link); if ($add_args) { $link = add_query_arg($add_args, $link); } $link .= $args["add_fragment"]; /** * Filters the paginated links for the given archive pages. * * @since 3.0.0 * * @param string $link The paginated link URL. */ $page_links = "" . $args["prev_text"] . ""; endif; for ($n = 1; $n <= $total; $n++) : if ($n == $current) : $page_links = ""; $dots = true; else: if ($args["show_all"] || ($n <= $end_size || ($current && $n >= $current - $mid_size && $n <= $current + $mid_size) || $n > $total - $end_size)) : $link = str_replace("%_%", 1 == $n ? "" : $args["format"], $args["base"]); $link = str_replace("%#%", $n, $link); if ($add_args) { $link = add_query_arg($add_args, $link); } $link .= $args["add_fragment"]; /** This filter is documented in wp-includes/general-template.php */ $page_links = "" . $args["before_page_number"] . number_format_i18n($n) . $args["after_page_number"] . ""; $dots = true; elseif ($dots && ! $args["show_all"]) : $page_links = "" . __("…") . ""; $dots = false; endif; endif; endfor; if ($args["prev_next"] && $current && $current < $total) : $link = str_replace("%_%", $args["format"], $args["base"]); $link = str_replace("%#%", $current + 1, $link); if ($add_args) { $link = add_query_arg($add_args, $link); } $link .= $args["add_fragment"]; /** This filter is documented in wp-includes/general-template.php */ $page_links = "" . $args["next_text"] . ""; endif; switch ($args["type"]) { case "array": return $page_links; case "list": $r .= "
        \n\t
      • "; $r .= join("
      • \n\t
      • ", $page_links); $r .= "
      • \n
      \n"; break; default: $r = join("\n", $page_links); break; } return $r; }

      24.09.2013 Ромчик

      Первое, что нам необходимо сделать - это скачать плагин. Я долго выбирал плагин из множества плагинов позволяющих сделать пагинацию. Но один сильно грузит систему, второй какой-то не адекватный. И мой выбор остановился на плагине для WordPress WP-Paginate, который Вы можете скачать из официального репазитория . Плагин прост в установке. И имеет базовые настройки, которые мы рассмотрим, чуть ниже. Переходим к настройке пагинации.

      Второе, что нам необходимо сделать это настроить в самой CMS сколько постов мы хотим выводить на странице. Для этого в админке переходим в «Параметры»->«Чтение» и в поле «На страницах блога отображать не более» указываем необходимое число. Так, у меня стоит 5, т.е. на странице будет отображаться не более пяти постов. И жмем «Сохранить изменения».

      Отлично, теперь переходим к третьему шагу. В админке переходим «Плагины»->«Установленные» и находим наш плагин WP-Paginate. Активируем его. Для этого жмем по ссылке под названием плагина «Активировать»

      Четвертое – настраиваем плагин. Для этого мы можем тут же нажать «Settings»

      Или в админке перейти «Параметры»->«WP-Paginate»

      Какой способ выбрать Вам решать. Попадаем в окно настроек плагина пагинации.

      • Pagination Label – указываем текст, который будет находиться перед списком страниц.
      • Previous Page – указываем текст ссылки на предыдущую страницу
      • Next Page – указываем текст ссылки на следующую страницу
      • Before Markup и After Markup – указываем html-код, который будет находиться перед и после списка страниц.
      • Markup Display – если мы поставим галочку, то html-код который мы указали выше будет отображаться даже, если список страниц пуст
      • Page Range – количество страниц отображаемых после текущей страницы
      • Page Anchors – количество ссылок, которые необходимо показывать в начале и в конце спсика.
      • Page Gap – минимальное количество страниц перед …

      После изменения всех настроек жмем «Save Changes»

      Все наш плагин настроен. Теперь плагин пагинации необходимо отобразить на странице.

      Пятый шаг. Переходим в наш шаблон. Открываем файл в котором перечисляются посты. В моем случае это index.php, у Вас может быть loop.php или другой. И в то место, где мы хотим вывести пагинацию вставляем следующий код:

      Т.е. мы в начале проверяем наличие функции wp_paginate и если она существует, то вызываем ее.

      Все на нашем сайте появилась пагинация.

      И последний заключительный шестой шаг – приведение пагинации к нашему дизайну. Для этого будем «играться» с CSS.

      Наш список страниц будет обрамлен в html-код, который мы указали в полях Before Markup и After Markup. В нашем случае это div c классом navigation. Дальше идет спсиок

        с классом wp-paginate. Дальше идут
      1. :

        • С классом title – это текст перед списком страниц
        • С классом prev – это ссылка на предыдущую страницу
        • C классом page – ссылка на страницу
        • С классом page и current – это текущая страница
        • С классом next – ссылка на следующую страницу

        Вот и все. Меняя CSS свойства этих классов мы приводим вид нашей пагинации к такому, какой необходим в дизайне.

        Таким образом всего за шесть шагов мы настроили пагинацию на нашем сайте под управлением CMS WordPress.

        Привет всем!

        Продолжаю писать статьи, посвященные навигации сайта на движке WordPress.

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

        Материал вышел очень объемный и, пожалуй, самый исчерпывающий в сети.

        Постраничная навигация (пагинация) - это разбиение информации на страницы. Если взять массу сайтов на Wordpres, то данный феномен ярко выражен в видео списка номеров страниц внизу каждой страницы с анонсами. На моем блоге данная функция имеет следующий вид.

        Дизайн может быть разный. Но суть ее одна и та же - разбиение информации на страницы. Как вы знаете, по умолчанию, на главной странице сайта выводятся анонсы записей, которых может быть определенное количество (зависит от выставленных настроек в пункте "Написание").

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

        Как правило, сейчас в современных шаблонах Wodpress постраничная навигация уже встроена. Но имеется вариант, когда ее и нет. Тогда придется реализовать. Вместо нее может быть разбиение анонсов на страницы в виде ссылок на предыдущие и следующие записи. Это ярко выражено в стандартных шаблонах.

        Такой вариант также неудобен, так как при заходе на 3 страницы назад мы не сможем в один шаг вернуться на изначальную страницу. Придется 3 раза кликать на предыдущие записи или на следующие. Постраничная навигация же позволяет более гибко управляться с данным моментом.

        В общем, давайте перейдем к ее реализации и первым шагом встроим ее в шаблон без плагина. Данный способ я разобрал в видео-уроке. Рекомендую сначала его посмотреть, а потом уже проштудировать текстовую версию инструкции.

        Делаем без плагина

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

        Вот первая часть кода. Ее необходимо разместить в файле functions.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 = 0; //1 - выводить текст "Страница N из N", 0 - не выводить $a["mid_size"] = 1; //сколько ссылок показывать слева и справа от текущей $a["end_size"] = 1; //сколько ссылок показывать в начале и в конце $a["prev_text"] = ""; //текст ссылки "Предыдущая страница" $a["next_text"] = ""; //текст ссылки "Следующая страница" if ($max > 1) echo "

        "; }

        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 = 0 ; //1 - выводить текст "Страница N из N", 0 - не выводить

        $a [ "mid_size" ] = 1 ; //сколько ссылок показывать слева и справа от текущей

        $a [ "end_size" ] = 1 ; //сколько ссылок показывать в начале и в конце

        $a [ "prev_text" ] = "" ; //текст ссылки "Предыдущая страница"

        $a [ "next_text" ] = "" ; //текст ссылки "Следующая страница"

        if ($max > 1 ) echo "

        " ;

        Я разместил код в самое начало файла после открывающего тега


        В данном коде мы можем отрегулировать некоторые параметры:

        • Строка 10 - если изменить значение 0 на 1, то рядом с номерами страниц будет выводиться надпись вида, например "Страница 3 из 45". Можете сделать такой вариант, но я считаю, что в данном случае он не нужен, так как в номерах страниц и так понятно, сколько страниц на сайте. А активная страница выделяется другим цветом;
        • Строки 11 и 12 - слева и справа номера активной страниц должно отображаться определенное количество предыдущих или следующих номеров соответственно. Тут мы выставляем их количество. В данном коде стоит значение 1. Можно поставить 2 или 3. Тут нужно будет немного поэкспериментировать, так как чем больше количество номеров, тем шире будет навигация. Все зависит от ширины шаблона.

        wp_corenavi () ;

        Так как постраничная навигация должна отображаться везде, где выводится список анонсов,то необходиммо данный код разместить во всех файлах, где это происходит:

        • Главная страница - index.php;
        • Страницы рубрик и архивов - category.php и archive.php;
        • Страница поиска - search.php.

        Кстати, в некоторых шаблонах вывод страниц рубрик и архивов может осуществляться одним файлом. У меня за это отвечает файл archive.php.

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

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

        < div class = "nav-previous" > ← Older posts" , "twentyten" ) ) ; ?> < / div >

        < div class = "nav-next" > "Newer posts " , "twentyten" ) ) ; ?> < / div >

        У каждого данный код может быть разным, но его основная начинка будет одинаковой. Вам нужно будет найти код, который будет содержать код с названиями next_posts_link и previous_posts_link.

        Когда найдете, то смело удаляете данное содержимое из файла и на его место копируете нужный код, выводящий постраничную навигацию.


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

        Кстати, если у вас имеются проблемы с данным процессом, то можете обратиться ко мне за помощью в комментариях. Постараюсь помочь.

        /* NAVIGATION */.navigation { float: left; width: auto; margin-left: 216px; margin-top: -2px; font-size: 16px; } .navigation > a { float: left; width: 32px; font-weight: 700; text-align: center; color: #637b93; text-decoration: none; margin-left: 1px; padding-top: 7px; } .navigation > .current { float: left; font-weight: 700; width: 29px; text-align: center; color: #c4c8cc; margin-left: 5px; padding-top: 7px; } .navigation > .prev { float: left; width: 32px; height: 34px; background: url("images/bow_left.png") no-repeat; margin-left: 0; } .navigation > .next { float: left; width: 34px; height: 34px; background: url("images/bow_right.png") no-repeat; margin-left: 14px; } .navigation > .dots { float: left; font-size: 14px; font-weight: 700; width: 32px; text-align: center; color: #c4c8cc; padding-top: 7px; }

        /* NAVIGATION */

        Navigation {

        float : left ;

        width : auto ;

        margin-left : 216px ;

        margin-top : -2px ;

        font-size : 16px ;

        Navigation > a {

        float : left ;

        width : 32px ;

        font-weight : 700 ;

        text-align : center ;

        color : #637b93 ;

        text-decoration : none ;

        margin-left : 1px ;

        padding-top : 7px ;

        Navigation > .current {

        float : left ;

        font-weight : 700 ;

        width : 29px ;

        text-align : center ;

        color : #c4c8cc ;

        margin-left : 5px ;

        padding-top : 7px ;

        Navigation > .prev {

        float : left ;

        width : 32px ;

        height : 34px ;

        background : url ("images/bow_left.png" ) no-repeat ;

        margin-left : 0 ;

        Navigation > .next {

        float : left ;

        width : 34px ;

        height : 34px ;

        background : url ("images/bow_right.png" ) no-repeat ;

        margin-left : 14px ;

        Navigation > .dots {

        float : left ;

        font-size : 14px ;

        font-weight : 700 ;

        width : 32px ;

        text-align : center ;

        color : #c4c8cc ;

        padding-top : 7px ;

        Также необходимо загрузить картинки стрелок перемещения вперед и назад на хостинг в папку images шаблона оформления. . Для загрузки можете пользоваться стандартным файловым менеджером хостинг провайдера. Я же .

        Когда разместили коды в файлах functions.php, во всех файлах, выводящих страницы с анонсами и прописали стили, можем проверить работоспособность навигации. У меня все работает и в стандартном шаблоне она имеет следующий вид.

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

        Плагин WP-PageNavi

        Для начала скачиваете плагин с официальной страницы и устанавливаете его на сайт.

        После установки плагина нужно будет также разместить код, который выведет навигацию внизу страницы.

        Теперь плагин будет выполнять свою задачу и номера страниц будут иметь следующее оформление.

        С одной стороны оформление не ахти, а с другой очень даже ничего, так как не мозолит глаза. Пользователи любят простоту! Поэтому, можно все так и оставить. Если же хотите чего-то более красочного, то сейчас мы с вами рассмотрим некоторые варианты. А пока мы обсудим такую вещь, как настройка wp pagenavi. Настройки имеются и о них стоит поговорить.

        Касаемо первого пункта настроек "Шаблоны списка страниц", то в нем ничего менять не нужно. Нас все устраивает. Мы двигаемся к пункту "Настройки списка страниц".

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

        • Использовать стиль - если поставим значение "No", то стили плагина уберутся и номера страниц не будут оформлены;

        • Стиль списка страниц - кроме обычного списка номеров страниц мы можем выбрать вариант выпадающего списка;

        • Всегда показывать список страниц- настройку не включаем. Нужно, чтобы список отображался только там, где это необходимо;
        • Количество страниц для показа - отвечает за количество выводимых номеров страницы в начале списка. По умолчанию, значение стоит 5 и на скриншотах выше вы можете посмотреть, что именно 5 страниц выводятся;
        • Диапазон страниц для показа - если на вашем сайте очень много страниц, то данная функция будет крайне полезна. Она будет выводить номера страниц после основного списка со значениями 10, 20, 30, 40 и так далее. Интервал между этими значениями определяется следующим параметром;
        • Коэффициент для диапазонов страниц - если выстави значения 5, то диапазон страниц будет иметь вид - 10, 15, 20, 25 и т.д. Если 10, то 10, 20, 30, 40 и так далее. Значения 10 вполне достаточно.

        Это все настройки, которые вам нужно выставить в соответствии со своими нуждами. Тут уже каждый по себя отрегулирует.

        Самый простой вариант - установка дополнительного плагина, который имеет уже заготовленные стили, а также дает возможность настроить каждый параметр индивидуально. Называется плагин .

        После его установки в админ-панели WordPress появляется новый пункт.

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


        Если же хотим настроим стили индивидуально, то в первом пункте настроек "Select Stylesheet" выбираем вариант "Custom" и настраиваем параметры всех элементов (границ и их цветов, цветов и размеров шрифтов, цвета ссылок при наведении курсора мышки и так далее).


        Переведу вам все параметры.

        • Heading Color - цвет текста "Страница 3 из 45";
        • Background Color - цвет фона;
        • Active/Current Background color - цвет фона активного номера страницы;
        • Font Size - размер шрифта;
        • Link Color - цвет ссылки;
        • Link Mouse Hover/ Active Hover - цвет ссылки при наведении мышки на номер и при активности номера;
        • Link Border Color - цвет границы;
        • Link Border Mouse Hover/Active Color - цвет границы при наведении курсора мышки и пи активности номера;
        • Align Navigation - расположение навигации (слева, справа, центр).

        Значения цветов вы можете искать в интернете или же в программе Photoshop, когда выбираете нужный цвет для заливки.


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

        Второй вариант осуществляется с помощью редактирования файла стилей, который расположен в папке с плагином Wp-pagenavi на хостинге - pagenavi-css.css.

        Данный файл подключается, когда в настройках плагина активна настройка "Использовать стиль pagenavi-css.css". Поэтому, если мы его отредактируем, то после обновления плагина, все стили заменятся на стандартные. Чтобы каждый раз на заменять данный файл и не прописывать стили заново я рекомендую сделать следующую вещь:

        1. Отредактировать стили в этом файле на свои, придав нужное оформление постраничной навигации;
        2. Отключить настройку "Использовать стиль pagenavi-css.css";
        3. Разместить эти стили в основном файле стилей шаблона оформления style.css.

        Таким образом эти стили будут работать независимо от плагина. И при обновлении они не будут сбиваться. Это, пожалуй, самый лучший вариант оформления навигации в данном плагине, который я сам бы сделал. Но, к счастью, я использую вариант без плагина, что и вам совету.

        Итак, друзья. Материал получится очень хорошим, как на меня. Что вы думаете на этот счет? Надеюсь, что вы все сделали. Если что-то не получается, то в комментариях постараюсь помочь. Пишите, не бойтесь! Я также когда-то очень мучился и мне удалось разобраться.

        На данной ноте уже хочу поскорей закончить этот пост, так как сил он отнял уйму. Это я и сделаю. Попрощаюсь и пойду отдыхать, а затем уткнусь в написание нового контента.

        С уважением, Константин Хмелев!

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

        Использование темы

        С простой способ добавить пагинацию в WordPress — это использование тем. Некоторые темы уже содержат эту функцию и инструменты для настройки ссылок пагинации. Например, изменения цвета и внешнего вида ссылок.

        Чтобы узнать, поддерживает ли тема эту функцию, перейдите в раздел «Внешний вид » панели администрирования WordPress .

        Нажмите кнопку «Настроить ». В зависимости от темы, которую вы используете, здесь может отображаться раздел пагинации. Он также может быть включен в другие разделы настройки темы.


        Если не нашли параметры настройки пагинации WordPress без плагина , нажмите «X », чтобы вернуться в панель администрирования. Вам нужно будет использовать один из способов, чтобы добавить пагинацию на сайт.


        Установка темы с поддержкой пагинации

        Функции, которые поддерживаются одной темой, не всегда доступны в другой. Сложность заключается в том, чтобы найти ту тему, которая содержит необходимые вам функции, а затем настроить ее с помощью плагинов или редактирование кода.

        Чтобы добавить тему, поддерживающую пагинацию:


        В поле поиска введите «pagination ». WordPress автоматически фильтрует темы и находит те, в описании, которых присутствует данный термин.


        Найдите тему, которая вам нравится, установите и активируйте ее. Если не уверены, подходит ли она, нажмите на кнопку «Предварительный просмотр ».

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


        Использование плагинов пагинации

        В этой статье я расскажу о плагине Pagination by BestWebSoft . С его помощью можно добавить пагинацию для различных разделов WordPress-сайта .

        Чтобы установить плагин Pagination by BestWebSoft сделайте следующее:

        • В панели администрирования WordPress перейдите в раздел «Плагины » и нажмите на кнопку добавления нового плагина.


        • Найдите плагин «Pagination by BestWebSoft ». Установите и активируйте его.


        • В меню панели администрирования будет добавлена новая функция. Нажмите на новый пункт меню, чтобы открыть панель BWS . Все инструменты BestWebSoft содержатся в этом разделе. Если у вас установлены другие инструменты, нажмите ссылку Pagination .


        В настройках плагина пагинации WordPress можно настроить пагинацию для различных частей сайта: для главной страницы, для страниц архива, блога и так далее.


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


        Перейдите на вкладку «Пользовательский код ». Здесь можно задать собственные CSS-стили, чтобы настроить отображение пагинации. После того как завершите редактирование кода, нажмите на кнопку «Сохранить изменения », расположенную в левом нижнем углу.


        После этого все остальное плагин сделает автоматически. После вывода пагинации WordPress вам останется только добавить контент.

        Другие плагины

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

        WP-PageNavi


        Плагин дает возможность изменять текст раздела пагинации, а также количество ссылок на записи, которые будут отображаться. Одной из причин, почему так много людей используют плагин, является то, что он имеет собственный файл CSS . Это позволяет разработчикам задавать уникальное отображение пагинации.

        WP-Paginate


        Плагин предоставляет возможность гибкой настройки. Он также поддерживает возможность добавления пользовательского кода CSS . Этот плагин содержит несколько базовых параметров, в том числе отображение ссылок и использование синих или серых кнопок.

        Pagination by HocWP


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

        Использование пагинации для записей WordPress

        Если у вас есть редактор CSS-кода , то можно внести изменения в темы и плагины. Например, плагин PageNavi предоставляет доступ к собственному файлу CSS .

        Можно добавить пользовательский код для других областей страницы через файл style.css темы. А также изменить цвет фона, отображение элементов при наведении курсора мыши и многое другое.

        Как сделать ваш сайт более интерактивным

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

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

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

        Некоторое время я пользовался другим аналогичным решением , за что большое спасибо его автору Тимуру.

        Функция, которую я вам предлагаю, совсем небольшая по размеру:

        function wp_corenavi() { global $wp_query; $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 "

        "; }

        Данный код необходимо поместить в файл functions.php вашего шаблона. В функции всего пять опций, они отделены разрывами строк. Комментарии я написал, думаю, тут все понятно.

        Для того, чтобы вывести навигацию в нужном месте, вставляйте в шаблон следующий код:

        HTML-код, который получается в результате вывода функции, выглядит следующим образом:

        Как видите, присутствуют все необходимые CSS-классы, которые можно использовать для оформления любого элемента навигации (например, текущую страницу, ссылки на предыдущую и следующую страницы).

        Проверял данную функцию на версиях WordPress, начиная с 2.3.3, а также тестировал варианты с включенным и отключенным ЧПУ. Все работает, как и полагается.

        Пользуйтесь.

        Если вам нужен надежный хостинг и регистрация доменов , то вас ждет крупнейших украинский хостинг-провайдер FREEhost.UA, который готов предложить любой вид хостинга, начиная от виртуального, заканчивая арендой готового сервера.