adminvps

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

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

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

Полезные комментарии (1)
Комментарии (224)
  1. 1

    Большое спасибо автору. Успехов!

  2. 2
    Anton

    не читал все комментарии, а что делает строка
    $a[‘base’] = str_replace(999999999, ‘%#%’, get_pagenum_link(999999999));
    ?

  3. 5
    павел
    @

    а как обернуть ссылки в li ?

  4. 9

    немогу понять как сделать чтоб на главной выбивалось всего 4 статьи остальное уходило в пагинацию

  5. 11
    @

    У меня вместо цифр стоит «следующая страница» а нельзя ли это поменять в настройках ВП, не влезая в файлы шаблона?

  6. 13
    @

    Спасибо за статью! Добавил постраничную навигацию на свой сайт techbez01.ru без плагина. Круто!

  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/
    или сделать редирикт, но тут сами решайте.

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

Ваш комментарий