Постраничная навигация в WordPress без плагина (альтернатива WP-PageNavi)
Практически любой блоггер, который ведет свой блог на движке WordPress, знаком с плагином WP-PageNavi, который выводит постраничную навигацию такого вида: Но не каждый знает (включая меня до недавнего времени), что WordPress имеет встроенную функцию (начиная аж с версии 2.1), которая реализует практически тот же самый функционал. Т.е. необходимость в использовании плагина отпадает. Некоторое время я пользовался другим аналогичным решением, за что большое спасибо его автору Тимуру. Функция, которую я вам предлагаю, совсем небольшая по размеру: 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=1;//1 - выводить текст "Страница N из N", 0 - не выводить $a['mid_size']=3;//сколько ссылок показывать слева и справа от текущей $a['end_size']=1;//сколько ссылок показывать в начале и в конце $a['prev_text']='«';//текст ссылки "Предыдущая страница" $a['next_text']='»';//текст ссылки "Следующая страница" if($max>1)echo'<div class="navigation">'; if($total==1&&$max>1)$pages='<span class="pages">Страница '.$current.' из '.$max.'</span>'."\r\n"; echo$pages. paginate_links ($a); if($max>1)echo'</div>';} Данный код необходимо поместить в файл functions.php вашего шаблона. В функции всего пять опций, они отделены разрывами строк. Комментарии я написал, думаю, тут все понятно. Для того, чтобы вывести навигацию в нужном месте, вставляйте в шаблон следующий код: if(function_exists('wp_corenavi')) wp_corenavi();?> HTML-код, который получается в результате вывода функции, выглядит следующим образом: <divclass="navigation"> <spanclass="pages">Страница 7 из 27</span> <aclass='prev page-numbers'href='http://wordpress31/page/6/'>« Предыдущая</a> <aclass='page-numbers'href='http://wordpress31/page/1/'>1</a> <spanclass='page-numbers dots'>...</span> <aclass='page-numbers'href='http://wordpress31/page/4/'>4</a> <aclass='page-numbers'href='http://wordpress31/page/5/'>5</a> <aclass='page-numbers'href='http://wordpress31/page/6/'>6</a> <spanclass='page-numbers current'>7</span> <aclass='page-numbers'href='http://wordpress31/page/8/'>8</a> <aclass='page-numbers'href='http://wordpress31/page/9/'>9</a> <aclass='page-numbers'href='http://wordpress31/page/10/'>10</a> <spanclass='page-numbers dots'>...</span> <aclass='page-numbers'href='http://wordpress31/page/27/'>27</a> <aclass='next page-numbers'href='http://wordpress31/page/8/'>Следующая »</a> </div> Как видите, присутствуют все необходимые CSS-классы, которые можно использовать для оформления любого элемента навигации (например, текущую страницу, ссылки на предыдущую и следующую страницы).
|