ГлавнаяWordpressАвторские Функции → Альтернатива плагину WP-pagenavi (пагинация для WordPress)

Альтернатива плагину WP-pagenavi (пагинация для WordPress)

Комментариев: 73Альтернатива плагину WP-pagenavi (пагинация для WordPress)
  • Я не знаю php вообще, как сделать так?

    ОТВЕТИТЬ ↓
    • Вам к Лебедеву нужно обратиться smile Шутка.

      Если php не знаете, то делайте так, как предлагается и не нужно подражать батюшке Яндексу smile

      ОТВЕТИТЬ ↓
  • А я сделал

    Хотелось чтобы на php сделалось примерно так:

    <div class="wp-pagenavi"> 
    
    <b class="df">Страницы</b> 
    
    /*код, если находишься на 1-й странице*/
    <span class="dh">
    	<i class="di">
    		<i class="dj">
    	<</i> Ctrl</i>
    предыдущая
    </span> 
    
    /*код, если находишься на последней странице*/
    <span class="dg">
    	сдедующая
    	<i class="di">Ctrl
    		<i class="dj">
    		>
    		</i>
    	</i>
    </span> 
    
    /*следущая*/
    <span class="dg">
    <a id="next_page" class="b-pager__next" href="urlnext">следующая</a>
    	<i class="di">Ctrl
    		<i class="dj">
    		>
    		</i>
    	</i>
    </span> 
    
    /*предыдущая*/
    <span class="dg">
    	<i class="di">Ctrl
    		<i class="dj">
    		>
    		</i>
    	</i>
    
    <a id="next_page" class="b-pager__next" href="urlnext">следующая</a>
    </span> 
    
    <div class="numbers"> 
    
    <a href="http://gubkabob.com/">1</a>
    <span class="current">2</span>
    <a href="http://gubkabob.com/page/3/">3</a>
    <a href="http://gubkabob.com/page/4/">4</a>
    <a href="http://gubkabob.com/page/5/">5</a>
    
    </div><!--numbers-->
    
    </div><!--wp-pagenavi-->
    
    ОТВЕТИТЬ ↓
    • я уже кое-что начал понимать

      ОТВЕТИТЬ ↓
      • итак, я тут делаю и мне нужно вот это

        if ($backtext && $paged!=1) $out.= '<a href="'.get_pagenum_link(($paged-1)).'">'.$backtext.'</a>';
        				if ($nexttext && $paged!=$end_page) $out.= '<a href="'.get_pagenum_link(($paged+1)).'">'.$nexttext.'</a>';

        поместить внутрь этого дива

        <div class='wp-kama-navi'></div>

        но не знаю как это сделать, помогите

        ОТВЕТИТЬ ↓
        • Получилось)

          if ($backtext & nexttext) $out.= "<div class='wp-kama-navi'>";
          				if ($backtext && $paged!=1) $out.= '<a href="'.get_pagenum_link(($paged-1)).'">'.$backtext.'</a>';
          				if ($nexttext && $paged!=$end_page) $out.= '<a href="'.get_pagenum_link(($paged+1)).'">'.$nexttext.'</a>';
          				if ($backtext & nexttext) $out.= "</div>";

          Незнаю насколько логичен такой код, поправьте если это неправильно ну и все такое

          ОТВЕТИТЬ ↓
  • еще было классно если бы ссылка на несуществующую страницу не исчезала, а становилась обычным текстом как на картинке

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

    ОТВЕТИТЬ ↓
    • так вроде нужно чтоб визуально не нарушалоась привычность навигации ссылками "предыдущая", "следующая"

      когда пропадает ссылка, я начинаю тупить)

      ОТВЕТИТЬ ↓
      • Можно так сделать (исправленный код, который вы выложили выше, с учетом, чтобы назад/вперед не исчезали, если ссылки нет, то будет просто текстом показываться):

        
        $out.= "<div class='wp-kama-navi'>";
        $out.= ($backtext && $paged!=1) ? '<a href="'.get_pagenum_link(($paged-1)).'">'.$backtext.'</a>' : $backtext;
        $out.= ($nexttext && $paged!=$end_page) ? '<a href="'.get_pagenum_link(($paged+1)).'">'.$nexttext.'</a>' : $nexttext;
        $out.= "</div>";
        
        ОТВЕТИТЬ ↓
        • Спасибо!

          ОТВЕТИТЬ ↓
        • я еще стрелочек и надпись "страницы" добавил

          Не знаю как это заработало, но я что-то неправильно с стрелочками сделал

          $out='';//выводим навигацию
          		$out.= $before."<div class='wp-pagenavi'>\n";
          		$out.= "<div class='wp-kama-navi'>";
          				if ($text_num_page){
          					$text_num_page = preg_replace ('!\{current\}|\{last\}!','%s',$text_num_page);
          					$out.= sprintf ("<b>$text_num_page</b>  ",$paged,$max_page);
          				}
          
          $out.= ($backtext && $paged!=1) ? '←<a href="'.get_pagenum_link(($paged-1)).'">'.$backtext.'</a>' :  '←&nbsp' .$backtext;
          $out.= ($nexttext && $paged!=$end_page) ? '<a href="'.get_pagenum_link(($paged+1)).'">'.$nexttext.'</a>→' :  ''.$nexttext.'&nbsp→'  ;
          $out.= "</div>";
          ОТВЕТИТЬ ↓
  • Тимур, спасибо, постраничка работает отлично. После всех исправлений не заметил ни одного косяка, все корректно.
    Да и грузится блог вроде быстрее. Вообщем, спасибо.

    ОТВЕТИТЬ ↓
    • Пожалуйста. Рад что пригодилось!

      ОТВЕТИТЬ ↓
  • вот обратная нумерация.. как вы её реализовали? не оч охота 70 строк кода сравнивать..
    спасибо

    ОТВЕТИТЬ ↓
    • Просто поменял анкор ссылки. В нормальном там показывается по порядку, а в реверсивной (всего страниц - номер текущей) ($max_page-$i+1). Грубо говоря, так.

      ОТВЕТИТЬ ↓
  • да , кстати.. опять же насчёт реверсивной навигации

    Сами страницы wp нумеруются автоматически в виде site.ru/?paged=1. И порядок этот опять таки неправильный..

    поесть несовпадение получается. .

    наверное проще просто поменять порядок страниц в wp ?

    ОТВЕТИТЬ ↓
    • И порядок этот опять таки неправильный..

      Ну эт смотря с какой точки зрения смотреть. Он такой же неправильный, как и правильный *wacko*

      Порядок страниц в движке поменять совсем не проще - это ваще другая история! На этом порядке запросы к БД построены и еще много чего (не разбирался). Я конечно люблю авантюры, но не настолько *sarcastic*

      ОТВЕТИТЬ ↓
  • тогда весь смысл реверсивной навигации теряется, ведь тогда номера страниц и совпадать то не будут..

    ОТВЕТИТЬ ↓
    • Ага, так и получается. Реверсивная только визуально smile

      ОТВЕТИТЬ ↓
  • у меня такая проблемы не могу вывести ни ваш скрипт ни сам плагин навигации, когда в настройках ставлю галочку "Показывать навигацию, даже если страниц с записями больше нет" то оно показывает но без самой навигации, просто записи есть где примерно 10, в чем проблема помогите настроить или плагин или ваш Скрипт напишите мне на мыло пожалуйста!!!

    ОТВЕТИТЬ ↓
  • все решил прошу прощение за беспокойство))) у вас хороший блог много полезного спасибо!!

    ОТВЕТИТЬ ↓
  • Вроде всё делал по инструкции. Но вот незадача - у меня навигация выводится до самой последней страницы
    Где я согрешил? sad

    ОТВЕТИТЬ ↓
    • Переменную $stepLink измените, поставьте или "шаг" побольше, не 10, а например 50 или выключите ссылки с шагом вообще, указав в этой переменной 0. wink

      ОТВЕТИТЬ ↓
      • Спасибо, оба варианта решили проблему smile

        ОТВЕТИТЬ ↓
Форма комментирования

¤ Вставляйте код кнопкой: "Код" (php, js, html, css, sql);
¤ Выделяйте HTML код кнопкой: "Выделить" (<div>);
¤ Перед отправкой комментария используйте "Превью";
¤ Не пишите спам/бред — бесполезно!

Подписаться на комментарии без комментирования:

X

Забыли пароль?