Сейчас пишу тему для Wordpress. Там нужно реализовать постраничную навигацию. Для этого есть специальный плагин - WP Page Numbers называется. В нем 570 (пятьсот семьдесят) строчек кода! И это не считая CSS (см. скриншот). Я не понимаю, почему надо настолько усложнять такие простые вещи ?
У меня это заняло 20 строк с подробными комментариями (см. под кат). Правда в плагине Page Numbers есть поддержка стилей, а в моем примере правильно было бы добавить какой нибудь CSS. Но это мало что меняет...
PS: Что-бы выложить эти 20 строчек кода, нужно их оформить. Хотел скачать плагин для подсветки кода, но он оказался еще монстроурознее - 1.3 мегабайта. Это, блин, почти как сам Wordpress! Слава богу, что для оформления кода нашелся отличный сервис CodeHighlighter.Моя версия на 20 строк
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 }