Сейчас пишу тему для Wordpress. Там нужно реализовать постраничную навигацию. Для этого есть специальный плагин — WP Page Numbers называется. В нем 570 (пятьсот семьдесят) строчек кода! И это не считая CSS (см. скриншот). Я не понимаю, почему надо настолько усложнять такие простые вещи
?
У меня это заняло 20 строк с подробными комментариями (см. под кат). Правда в плагине Page Numbers есть поддержка стилей, а в моем примере правильно было бы добавить какой нибудь CSS. Но это мало что меняет…
PS: Что-бы выложить эти 20 строчек кода, нужно их оформить. Хотел скачать плагин для подсветки кода, но он оказался еще монстроурознее — 1.3 мегабайта. Это, блин, почти как сам Wordpress! Слава богу, что для оформления кода нашелся отличный сервис CodeHighlighter.
1 $maxp=5; //Количетво видимых страниц 2 $pcnt=$wp_query->max_num_pages; //Количетво страниц всего 3 // get_pagenum_link(номер) — функция WP, возвращает ссылку на страницу 4 5 if ($pcnt>1) 6 { 7 if (!$paged) {$paged = 1;} //Номер текущей страницы 8 else {echo "<a href='".get_pagenum_link($paged-1).",>« Prev</a>";} 9 10 for ($i=1; $i<=$pcnt; $i++) 11 { 12 if (($i>$maxp)&&($i<$pcnt-$maxp)) {$i=$pcnt-$maxp+1; echo " …";} 13 //Если нарисовали первые $maxp страниц, 14 // ставим многоточие, и рисуем последние $maxp страниц 15 if ($i!=$paged) {echo " <a href='".get_pagenum_link($i).",>$i</a>";} 16 else echo " $i"; 17 } 18 19 if ($paged!=$pcnt) {echo "<a href='".get_pagenum_link($paged+1).",>Next »</a>";} 20 }
