
Доброго времени суток!
Тема сегодняшней статьи - "Как установить на блоге WordPress постраничную навигацию без плагина". Всем известно, что плагины создают дополнительную нагрузку на хостинг, поэтому нужно стараться, по возможности, заменять функции, выполняемые тем или иным плагином, на код.
В одной из первых своих статей я показывала как при помощи плагина WP-PageNavi настроить постраничную навигацию, посмотреть можно тут. Если Вам лень возиться с кодом, то можете установить данный плагин. А я приступлю к объяснению вывода постраничной навигации с помощью кода.
Вариант установки постраничной навигации без плагина
Первым делом сделайте, на всякий случай, резервную копию файлов шаблона, чтобы в случае неправильно редактирования не испортить шаблон.
Первое что нужно сделать - вставить в файл functions.php код функции, чтобы не запутаться и не совершить ошибок, вставляйте код сразу после тега <?php
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'] = 5; //сколько ссылок показывать слева и справа от текущей $a['end_size'] = 1; //сколько ссылок показывать в начале и в конце $a['prev_text'] = '«'; //текст ссылки "Предыдущая страница" $a['next_text'] = '»'; //текст ссылки "Следующая страница" if ($max > 1) echo '
'; }
Против некоторых полей, Вы можете видеть пояснения на русском, поэтому на свое усмотрение можете поменять эти настройки.
Далее нужно на страницах, где требуется вывод постраничной навигации (архивы, поиск, главная) установить код:
<!--?php if (function_exists('wp_corenavi')) wp_corenavi(); ?-->
На картинке ниже, Вы можете посмотреть куда нужно вставлять код в файле:
Заключительным шагом является настройка внешнего вида. В частности нужно задать вывод кнопок навигации, либо с помощью картинки, либо через css стили. Я покажу, как сделать красивый внешний вид с помощью изображений. Специально для своих читателей выкладываю изображения для постраничной навигации в различной цветовой гаме:
Сохраните себе в двух подходящих цветах. Одна кнопка будет для активной страницы, а другая для всех остальных.
В файл style.css нужно добавить следующий код:
.navigation { text-align:center; margin:30px 0; } a.page-numbers { background:url(images/act_nav.png) no-repeat; width:25px; height:25px; display: inline-block; padding:5px 0 0 0; font-weight:bold; } a:hover.page-numbers{ background:url(images/activ_nav.png) no-repeat; color:#fff; text-decoration:none; } span.page-numbers.current { background:url(images/activ_nav.png) no-repeat; color:#fff; width:25px; height:25px; display: inline-block; padding:5px 0 0 0; font-weight:bold; }
Важно правильно указать путь до картинок постраничной навигации на хостинге! Картинки нужно загружать в папку с темой, которая находится по такому адресу public_html/wp-content/themes/тема/images
Также, не ошибитесь с указанием названия картинки.
Вот собственно и все. Надеюсь у Вас не возникнет проблем с настройкой.
С уважением, Виктория – блог inetsovety.ru
Я рад что подписался на ваш блог, каждая статья на вес золота, есть чем воспользоваться и много нужного для применения! Огромное спасибо за рекомендации и подробнейшие объяснения!
Согласна с Игорем, хотела спросить его, вы себе поставили постраничную навигацию с плагином или без него?
Виктория, спасибо за статью, все получилось с первого раза ! В моей теме изначально не было данной навигации (все сводилось к перелистыванию страниц без ее нумерации) и все никак руки не доходили прикрутить улучшенную навигацию для удобства посетителей. Осталось только с файлом стилей поработать и оформить под дизайн своего сайта. Успехов! 😀
на моем сайте не сработало
Не для каждой темы блога код наверно подходит. Темы пишут разные по профессионализму люди.
К сожалению на странице меток навигация не работает. Отображает только первую страницу, а при переходе на вторую и так далее выдаёт 404. И с плагином и с кодом не в какую.
Не подскажите как это исправить??
Честно говоря не знаю. Попробуйте обратиться к программистам на форуме веб-мастеров.
Префиксы рубрик — это ярлыки? У меня ярлыки заданы, но в адресах постов их не видно.
Нашёл решение. Вставить в functions.php:
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;
}
А как сделать, чтобы навигация работала без префикса для рубрик?
Не совсем понятен вопрос. Напишите детальнее, что нужно Вам изменить.
Окей. И так допустим:
сайт.ру/префикс для рубрик/рубрика/
Так постраничная навигация работает.
А если:
сайт.ру/рубрика/
то так уже не работает.
Вижу не работает, во втором случае. В связи с этим возникает на вашем сайте и проблема дублей, так как рубрика доступна по разным адресам. Проблема в префиксе к рубрикам. Скорее всего нужно редактировать сам код функции, которая отвечает за вывод постраничной навигации. У меня ни на одном сайте на вордпресс нет префиксов в рубриках, поэтому как отредактировать код, чтобы работал с префиксами подсказать не могу. Попробуйте поспрашивать на форумах вебмастеров.
Спасибо за ответы. Нужно будет подумать как вопрос в поисковике задать на эту проблему )) Ещё раз спасибо.
Спасибо,очень помогло,так как не силен пока в синтаксисе и достаточно долго искал как ,именно для этого кода ,прописать стили.
Вот до постраничной навигации у меня никак не дойдут руки, так и стоит стандартное «предыдущие», Я в код, обычно, лезу с большой не охотой))
Для ленивых, незнающих вместо кода есть плагины постраничной навигации.