Красивая нумерация страниц в блогах Вордпресс

Пятница, 21 Мар 2014 14:59

Делаем красивую нумерацию страниц в блогах WordPress

Всем привет!

Сегодня мы поговорим про то, как сделать красивую постраничную навигацию в блогах, созданных при помощи популярной CMS WordPress,  используя для этого специальный плагин PageNavi, а также решением различных проблем и конфликтов связанных с этим плагином.

Я не буду расписывать подробности установки данного плагина,  поскольку в интернете про это написаны сотни, если не тысячи различных  статей — акцент хочется сделать именно на второй части, а именно на том, как преодолеть неработоспособность некоторых функций в блогах WP, например, если вдруг перестало работать перелистывание записей по страницам и вместо их списка открывается страница ошибки 404.

Эта статья поможет вам в случаях, если у вас возникают или возникали ранее следующие ошибки:

— в блоге вдруг перестала работать постраничная навигация, хотя вы вроде бы «ничего такого» не делали;

— не работают пермалинки (permalinks) для страниц;

— появились проблемы с навигацией через posts_nav_link;

— не отображается стандартный список страниц;

— вместо сайта и админки появилась белая страница (белый лист);

— происходит конфликт ЧПУ и WP-PageNavi;

— наблюдается проблема с плагином Advanced Permalinks и многие другие.

Итак, для чего делается постраничная  навигация на блоге? Конечно же, в первую очередь,  для удобства пользователей вашего блога, чтобы они, прочитав одну вашу статью, могли перейти по другим страницам, посмотреть еще какие-то ваши записи, задержаться на нем подольше, что в конечном итоге благоприятно сказывается и на сео – продвижении вашего блога в том числе.

Как вы сами прекрасно понимаете, стандартная навигация на блогах ВП не очень удобна и выглядит не очень  стильно. Ну, действительно, что смотрится лучше: абсолютно не интригующие надписи «Предыдущие»  и  «Следующие», или  «Раньше — Позже», или  же такая вот красиво оформленная строчка с цифрами 1, 2, 3, 4…>>?

Разбиение на страницы,  когда внизу записей появляются красивые, аккуратные циферки в квадратиках — это и красиво, и стильно, и удобно, в конце концов.

[original:seo-semki.ru]

Постраничную навигацию можно реализовать несколькими способами – при помощи нужных плагинов или же вручную, вставив в нужном месте (файле  functions.php) определенный код.

Таких плагинов существует несколько, например, Number My Post Pages, Seo Pager, Pagebar,  PagerFix, WP Page Numbers и другие, но мы выберем самый простой и популярный среди вебмастеров и блогеров — плагин WP-PageNavi. Перейдем к установке данного плагина.

Установка WP-PageNavi

Его можно установить несколькими способами. Способ первый, для мазохистовsmile

Скачать с официального сайта по ссылке:

http://wordpress.org/plugins/wp-pagenavi/

закачать архив к себе на сервер по фтп, распаковать, установить плагин через админку.

Второй способ полегче, для всех остальных. (Есть еще третий способ — в этом случае ничего устанавливать вообще не надо, это если вы используете темы, в которых постраничная навигация уже заранее реализована в шаблонах вашей темы.:))

Заходим в админпанель блога WordPress, далее раздел «Плагины» — Добавить новый.

Вводим WP-PageNavi, ВП выполняет поиск и предлагает несколько вариантов на выбор, а именно 23.  Нужный нам плагин будет в самом верху, актуальная версия на сегодняшний день – 2.85. (Все изображения кликабельны — нажмите для увеличения).

Нажимаем  «Установить», затем «Активировать плагин».  Всё, плагин установлен и почти готов к работе. Почему почти? Потому что чтобы он окончательно заработал нужно выполнить еще одно условие — вставить в нужном месте шаблона код php.

Сделать это можно прямо в панели администратора, в редакторе шаблонов.  Не забываем нажимать «Обновить файл». Только предварительно не забудьте сделать бекап сайта или хотя бы скачать редактируемые файлы на свой компьютер.

И учтите, что здесь вы редактируете не файлы движка, а файлы активной, то есть используемой в данный момент темы.

Какой код и куда нужно вставлять?

Это зависит от версии движка или от используемой вами темы.

Обычно редактируется файлы index.php, archive.php и search.php, или же просто один индексный файл индекс.пшп. Вам надо найти вызов функций, отвечающий за вывод в блоге постраничной навигации. Функции эти могут называться posts_nav_link, next_posts_link и previous_posts_link,$next_link, $prev_link, previous_comments_link, next_comments_link и так далее.

Вызов этих функций следует заменить на вызов функции wp_pagenavi. Куски кода в разных темах могут различаться, поэтому приведу некоторые из них для примера, чтобы было понятней, о чем идет речь.

Вам надо найти следующие куски кода для замены:

 

 

 

 

 

 

 

Или даже такой код:

 

Примеры, скриншот:

Меняем этот код на тот, который предлагают разработчики плагина:

 

А лучше на этот код:

 

Здесь добавлен вывод функции function_exists, которая поможет предотвратить появление ошибок при отключении либо удалении WP-PageNavi.

(Если вы используете плагин WP Page Numbers, то вам нужно будет вставить следующий код):

 

Например, в стандартной теме вп Twenty Ten этот код находится в файле loop.php, поскольку файл index.php очень короткий — всего 32 строчки кода, большая часть из которого – комментарии.smile

Открываем файл loop.php и находим следующий код:

 

Он находится  в самом конце — 175-182 строчки.

После того, как вы установили код, можете обновить страницу и радоваться новой удобной и классной навигацией по страницам. В настройках он, кстати, отображается не как PageNavi, а как «Список страниц».

В настройках вы можете поменять какие-либо параметры на свой вкус и цвет, такие как «Кол-во страниц для показа», сделать список страниц для показа в виде выпадающего списка, поменять использование стиля pagenavi-css.css и т.д.

[original:seo-semki.ru]

Однако автор использует по умолчанию оптимальные настройки, которые подойдут для абсолютного большинства блогов. Поэтому далее можно ничего не менять, всё будет и так прекрасно работать, просто можете посмотреть настройки, они видны на скриншоте ниже. По-моему тут всё понятно, тем более описание оформлено на русском языке.

Например, последний пункт «Коэффициент для диапазонов страниц», подойдет в том случае, если у вас на сайте уже есть много страниц и сотни различных записей по категориям, но если  у вас всего 10 записей в блоге, то вряд ли эта настройка вам подойдет, так  как при коэффициенте 10 у вас отобразится всего одна страница, и не удивляйтесь потом, что у вас не будет работать постраничка рубрики.smile

Смотрим и радуемся  на результаты своего труда, какая у нас теперь стала удобная и красивая навигация по страницам:

Теперь, что касается перевода. Плагин WP-PageNavi на русском языке, поэтому переводить ничего не нужно. Прямо в настройках вы можете менять текст, который будет написан на ссылках. Однако если вы поставите какой-то другой плагин, WP Page Numbers, возможно там будет английский текст, который вы захотите поменять.

Например, вы захотите изменить ссылки вида «Page 1 of 2,  Next Page». Меняется этот текст на русский в настройках плагина: Настройки, далее «Page numbers», «Settings — Text».

Пишите в Default text  место слова «Page» слово «Страница», а место  «of» — «из», то есть какая страница из скольки.

Постраничная навигация без плагинов

Поговорим о том, как сделать навигацию без плагинов, а точнее, почему лучше этого не делать.

Какие преимущества сулят вам установка кодов без плагинов?

Ну, во-первых, простота установки. Типа, вставил такой вот «простой» код в нужный файл темы и забыл про него. Сомнительное утверждение, особенно для тех, кто как огня боится лишний раз лезть в файлы движка и редактировать там код.smile

По моему, как раз таки проще установить такой код посредством плагина, ведь в таком случае удалить его также легко, по крайней мере легче, чем каждый раз забираться на сервер и вспоминать, а какой кусок кода и за что там отвечает.

Обычно всё это дело пишется в файлик functions.php, так вот, есть немало простых тем без лишних наворотов, и этот простой код по количеству строк зачастую превышает размер самого такого файла.

Второе преимущество, о котором любят порассуждать сторонники бесплагинового метода, это улучшение сео-показателей сайта, таких как отсекание дублей, лишних редиректов и прочего.

Ну в любом случае, практически все используют у себя на сайтах такие файлы как robots.txt и .htaccess, и эти задачи можно с успехом решить через них, даже не беря в расчет специальных SEO-плагинов, таких как SEO by Yoast, All in SEO Pack или Platinum SEO Pack.

Третье преимущество, на которое так любят напирать любители лишний раз покопаться в коде, это то, что каждый подобный плагин дает лишние запросы, а, следовательно, и нагрузку на БД (базу данных), поскольку все свои настройки плагин сохраняет именно туда. И это, в конечном итоге, создает лишнюю нагрузку на блог.

Ну тут я даже не знаю, что сказать, и о какой нагрузке может идти речь в данном случае. Можно подумать, что все те, кто боится лишнего запроса к БД, ведут посещаемые, высоконагруженные проекты с несколькими сотнями К посетителей в сутки. Не бойтесь, ребята, при ваших 100-200 уников в сутки (чаще всего), парочку лишних запросов Вордпресс проглотит и даже не заметит.

Я, конечно, видел сайты на wordpress с посещаемостью полмиллиона человек в день, но не думаю, что даже там админы заморачиваются такой ерундой. Вообще, давайте конкретно «что, почём, сколько», конкретные примеры, какая нагрузка была до включения плагина, и насколько она выросла после, время отклика страницы, время загрузки и т. п. вещи. А то создается впечатление, что все переписывают друг у друга и даже не думают о том, что они пишут. Тем более в Вордпресс существует такое понятие как кэширование.

А вот я как-то раз видел информацию, где человек приводил сравнение, насколько изменилась нагрузка на блог при включении такого-то плагина, при этом там были указаны реальные цифры, графики, таблицы. Так вот, вывод, который там прозвучал – нагрузка изменилась минимально, то есть настолько, что ей можно абсолютно пренебречь.

Что касается плагина PageNavi, то он существует уже  довольно давно, и никаких особых проблем, вызванных  при работе с ним, я не встречал. Разработкой дополнения занимаются авторы, у которых есть десятки других плагинов и больше 4 миллионов скачиваний одного только WP-PageNavi.  (Пока я писал эти строки, ещё 7 человек скачали данный плагин). При этом последнее обновление сделано месяц назад. Как вы думаете, эти авторы знают о том, как надо правильно писать и оптимизировать  код?smile

Разработчики и пишут подобные вещи как раз таки для того, чтобы облегчить вам работу, а не копаться лишний раз в файлах, вместо того, чтобы просто установить какое-то дополнительное расширение.

Я не спорю, что есть темы и дополнения, которые пишут только для того, чтобы  «набить руку» и потренироваться. Такие самопалы могут не только создать нагрузку на блог, но и вообще положить его, даже с нулевой посещаемостью.  Грамотно же написанный код будет незаметен даже на высокопосещаемых  проектах.

Так что не используйте темы с варез-помоек и криво написанные программы и все будет ОК, а кроме того, также поможет избежать взлома сайта.

Четвертое…, хотя, кажется, хватит и первых трёх.:)  Тем более, если у вас не работает какой-то один плагин, то даже не пытайтесь установить код постраничной навигации вручную как вариант решения проблемы, так как, скорее всего, он также работать не будет. Лучше попробуйте выяснить причину его неработоспособности, в крайнем случае попробуйте любой другой похожий плагин, названия которого вы можете найти в начале этой статьи.

Как пример, у меня также в одной старой, но красивой теме не работали переходы постраничной навигации при установке плагина. Ради интереса попробовал несколько вариантов установки кодов вручную, без плагина – результат тот же.

И, наконец, самое интересное – рассмотрим ошибки, которые могут нарушить правильную пагинацию на блоге.

Ошибки, связанные с плагинами постраничной навигации

Можно выделить несколько групп ошибок, связанных с плагинами постраничной навигации и им подобных, когда возникают различные ошибки – не работают ЧПУ для статических страниц, не работает плагин Pagenavi, перестают работать переходы по страницам, отказывают Permalinks — пишет, что либо страница не найдена, либо выдает ошибку 404, либо отображает пустой экран.

Деление, это по понятным причинам, весьма условно.

1. Вы не вставили короткий код плагина в нужное место шаблона, или вставили не в то место, забыли обновить страницу или просто активировать данный плагин.

2. После обновления файлов ЦМС перестает работать постраничная навигация.

3. Конфликты плагинов.

Первая группа ошибок самая банальная, но, к сожалению, имеет место быть. Причинами тут могут быть и банальная невнимательность, и неопытность молодых блогеров и просто усталость, которая приводит к утрате работоспособности и внимания.

Короче говоря, нельзя сбрасывать со счетов и такой вариант, что если у вас вообще не появилась постраничная навигация на сайте, то есть внизу не появились цифры 1, 2,  3 и так далее, значит вы просто-напросто забыли включить плагин, или вставить короткий  код   в шаблон темы, или просто установить плагин.smile

Вторая группа ошибок — самая распространенная, так как чаще всего именно после обновления или переноса на другой хостинг (что обычно логически и влечёт за собой обновление как CMS сайта, так и всех дополнений и расширений к нему) можно наблюдать утрату постраничной навигации по сайту.

Бывает такое, что вроде и обновление прошло успешно, тема и плагины работают как и прежде, все посты и архивы записей открываются, но вот беда — вместо нужной страницы открывается страница стандартной ошибки 404, появляется надпись о том, что  страница не найдена или вовсе открывается белый лист.

И главным виновником такой ситуации является плагин Advanced permalinks. Именно после обновления этого плагина частенько перестают работать переходы на следующие страницы,  то есть они открываются, но совершенно пустые.

Вообще на плагин Advanced Permalink  нередко приходится слышать жалобы – это и ошибки связанные с постраничной навигацией, и жалобы на плохую и нестабильную  работу – частые  ошибки, в том числе и 404 и чтобы их исправить приходится отключать плагин и сбрасывать все настройки.

Вот еще типичная ошибка:

Браузер Mozilla Firefox не может загрузить страницу и выдает следующее:

Неверное перенаправление на странице

Firefox определил, что сервер перенаправляет запрос на этот адрес таким образом, что он никогда не завершится.

*   Эта проблема может возникать при отключении или запрещении принятия cookies.

Internet Explorer  вообще не может обработать страницу и грузит её без конца и края.

Но внимание, если браузер начинает долго загружать страницы сайта, но секунд через 10 всё-таки их загружает, то дело тут заключается, скорее всего, не в конфликте плагинов, а в вирусах и вредоносном коде, появившемся на сайте, особенно если он создан при помощи движка opencart/ocStore.

И это уже не первый раз, когда после обновления плагина Advanced Permalink переставали работать постоянные ссылки. Помогало только его отключение.

И помните, что белая страница может быть и признаком ошибок в коде, то есть вы редактировали какой-либо файл на хостинге и совершили ошибку, при этом на ваш взгляд даже саму незначительную, например, где-то поставили лишнюю точку, пробел, или забыли закрыть скобку. На  ваш взгляд это ерунда, но для работы сайта это может быть критичной ошибкой. Обработчик php не сможет правильно обработать данную ошибку и вот он белый экран смерти.smile

Поэтому если что-то редактируете прямо на сервере, не ленитесь сделать если не бекап всего сайта, то хотя бы сохранить один тот файл, который редактирует в данный момент. Через ftp или просто в браузере, «Сохранить как..».

Конфликты плагинов также могут привести к утрате работоспособности постраничной навигации. Причиной тут может быть всё тот же плагин Advanced permalinks. Его несовместимость с Pagenavi вполне может стать причиной появления пустого места на следующих страницах, а также других ошибок.

Ошибки эти могут быть самыми разными — навигация может  работать только на главной странице и не работать в архивах и категориях, а может совсем наоборот, не работать только на главной.

Сео-плагин Seo by Yoast может вызвать проблемы с календарем. Однако если дезактивировать функцию архивов — «Отключить архивы дат», то эта проблема может быть решена.

Надо сказать, что после обновления могут иногда возникать подобные глюки, например был такой баг, когда после обновления плагин Simple Tags перестал добавлять новые теги. Вот почему важно постоянно делать свежие бекапы или хотя бы контролировать этот процесс. В случае взлома или любой другой подобной ситуации вы всегда сможете восстановить целостность сайта или, при желании, откатить назад какие-то функции. Хотя откат на старые версии тоже не является лучшим вариантом решения проблемы. Но кому-то такой вариант может показаться оптимальным.

Таким образом, теперь вы знаете, что если в вордпресс не видны следующие страницы page/2, page/3 и т. д. и вместо них показывает белый лист (пустое место), или же браузер не может завершить свой запрос и делает перезагрузку, или блог выдает ошибку 404, то дело заключается не в ошибках php на блоге, а всего лишь в конфликтах некоторых плагинов, связанных с постраничной навигацией на блоге.

Первым делом в таком случае пробуйте отключить плагин Advanced permalink, обычно его обновление или конфликты с другими плагинами могут вызвать подобные ошибки.

[original:sео-sеmki.ru]

Некоторые думают, что дело тут в файлике htaccess, но он здесь совершенно не причем. И не надо грузить лишний раз functions.php посторонним кодом, если вы не разбираетесь в нем, или уже через неделю напрочь забываете, где и что вы меняли в коде. Плагины для того и существуют, чтобы облегчать вам жизнь, а не усложнять её. Нагрузка на сайт, скорее всего, вызывается не каким-то конкретным плагином, а криво написанным самописом.

С помощью плагинов постраничной навигации, перечисленных в начале статьи, вы можете улучшить юзабилити, то есть удобство использования, вашего блога.

Если у вас возникли какие-либо вопросы по работе данных плагинов, или появились какие-то странные  ошибки, например,  перестало работать переключение по страницам, и вы не знаете почему, не стесняйтесь задавать их в комментариях.

Не бойтесь, автор этого блога не кусается и людей не ест. smile

Можете также  поделиться ею с друзьями, нажав на кнопочки социальных сетей слева.

И напоследок традиционный анекдот.

 Окулист говорит пациенту:
— Какую букву я сейчас показываю?
— А где Вы!?

 

    Подпишитесь на комментарии, чтобы не пропустить
    важный ответ:



подписка на rss RSS - подписка
    подписка twitter Twitter - подписка

Вы можете оставить отзыв или трекбек со своего сайта.

комментариев 15 на «Красивая нумерация страниц в блогах Вордпресс»

  1. tez пишет:

    22 Мар 2014 в 05:44

    Варианты решения: отключить плагин
    Прямые ссылки на разделы и рубрики настроить стандартными средствами движка Вордпресс
    Какие еще решения кто предложит?

    [Ответить]

    seo Reply:

    Я. Прочитать эту статью еще раз сначала и до конца внимательноhttps://seo-semki.ru/icons/wpml_bye.gif

    [Ответить]

  2. juster пишет:

    25 Мар 2014 в 10:51

    Я так понимаю, что если нажать на «Читать далее» и выдаст страницу 404, то значит эта страница есть на блоге, а если появляется белый экран, то этой стрнаицы нет?

    [Ответить]

    seo Reply:

    В принципе похоже на правду, хотя ради интереса посмотрел у себя на одном сайте – страница 404.php есть, но при конфликте открывается пустая страница.
    Думаю, что может просто когда у кого-то открывается белый экран, он называют это ошибкой 404?

    [Ответить]

  3. Joginn пишет:

    28 Мар 2014 в 12:36

    Ну дык а чем отличается 404 от белого экрана ?

    [Ответить]

    seo Reply:

    Под ошибкой «404» я подразумеваю то, что какой-то контент пользователю всё же отдается. Например, открывается страница с поиском и словами вроде «Извините, запрошенной вами информации… бла-бла-бла, попробуйте воспользоваться поиском».
    При пустом экране, как следует из самого названия «пустой экран», пользователю не отдается ничего. В исходном коде пусто.
    При этом, подчеркну, в работе PHP никаких ошибок нет.

    [Ответить]

  4. ups пишет:

    31 Мар 2014 в 09:28

    Зачиталась малышка)))

    [Ответить]

  5. Элькар пишет:

    31 Мар 2014 в 10:31

    Была такая же трабла с плугином WCS Custom Permalinks Hotfix. По идее он должен был фиксить проблемы с пермалинками для категорий и тэгов, которые возникали при апгрейде Вп, но тогда возникали проблы с сообщениями.

    [Ответить]

    seo Reply:

    В чём же выражались проблемы с сообщениями?

    [Ответить]

  6. Hunter пишет:

    03 Апр 2014 в 23:05

    Также были включены чпу на сайте, и перестали работать переходы по страницам., т е, при попытке перейти по урлам вида sitenameas.com /page/2 ничего не открывалось, грузился пустой лист. Долго думал, в чем подвох, потом додумался отключить пост. ссылки. Т е. вернулись записи вида sitenameas.com/?p=123, и о чудо, все ссылки страниц сразу стали доступны и 2, 4 и тд..
    При этом заметил такую странность -получаются разные урлы -url sitenameas.com/?paged=2 работает а page/2 нет.
    Короче когда включены чпу и пэйджнави, то урл второй стр. указывается как sitenameas.com/page/2 и вторая и след. страницы не открываются, а когда чпу отключены, урлы имеют вид sitenameas.com/?paged=2 и стр. открываются.
    В общем как то так, думаю понятно написал.

    [Ответить]

    seo Reply:

    В общем не совсем понятно, но общий смысл ясен smile

    [Ответить]

  7. Анекдоты про блоггеров | SEO-semki пишет:

    27 Апр 2014 в 14:48

    […] 7. Позвоните друзьями коллегам, пусть дадут ссылку и сделают репосты на ваш блог. […]

  8. Кто такой блоггер | SEO-semki пишет:

    27 Апр 2014 в 17:44

    […] Создается впечатление, что, по мнению российских чиновников, в России блоги заводят только с одной целью – ругнуться матом, дождаться очередных выборов, чтобы опубликовать призывы к экстремизму, а затем со спокойной душой забросить свой блог. […]

  9. Andros пишет:

    02 Июл 2014 в 14:42

    А у меня ситуация повеселейhttps://seo-semki.ru/icons/wpml_mail.gif
    В теме функция станиц находится в файле:template-tegs.php
    Код такой:
    ‘ . _x( ‘←’, ‘Previous post link’, ‘something-fishy’ ) . ‘ %title’ ); ?>
    ‘ . _x( ‘→’, ‘Next post link’, ‘something-fishy’ ) . ‘‘ ); ?>

    И что поменять?

    [Ответить]

    seo Reply:

    Ну я думаю этот код надо заменить на этот, если речь идет о плагине WP-PageNavi:
    < ?php if ( function_exists( 'wp_ pagenavi ' ) ) wp_ pagenavi (); ?>

    [Ответить]

Ваш отзыв

https://seo-semki.ru/icons/wpml_bye.gif 
https://seo-semki.ru/icons/wpml_good.gif 
https://seo-semki.ru/icons/wpml_negative.gif 
https://seo-semki.ru/icons/wpml_scratch.gif 
https://seo-semki.ru/icons/wpml_wacko.gif 
https://seo-semki.ru/icons/wpml_yahoo.gif 
https://seo-semki.ru/icons/wpml_cool.gif 
https://seo-semki.ru/icons/wpml_heart.gif 
https://seo-semki.ru/icons/wpml_rose.gif 
https://seo-semki.ru/icons/wpml_smile.gif 
https://seo-semki.ru/icons/wpml_whistle3.gif 
https://seo-semki.ru/icons/wpml_yes.gif 
https://seo-semki.ru/icons/wpml_cry.gif 
https://seo-semki.ru/icons/wpml_mail.gif 
https://seo-semki.ru/icons/wpml_sad.gif 
https://seo-semki.ru/icons/wpml_unsure.gif 
https://seo-semki.ru/icons/wpml_wink.gif