Как создать тему для WordPress. Часть 6: постраничная навигация

Это шестой урок из серии о том, как создать тему для WordPress из верстки. Из него вы узнаете, как добавить в тему постраничную навигацию и создать шаблоны для страницы записи и архивов single.php и archives.php

Функция постраничной навигации

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

Сначала нужно посмотреть, какие теги и классы используются для вывода страниц в верстке. Открываем наш файл index.php, и в самом низу видим:

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

Сначала нужно скопировать код постраничной навигации в файл function.php, и вызвать его в файле index.php. Давайте сделаем это ниже существующей навигации из верстки, чтобы были видны отличия. Код и его вызов можно взять в этом посте.

Посмотрим, какой HTML сейчас генерирует функция:

Не совсем то, что нам нужно, правда? Поэтому внесем изменения в код функции.

Изменяем код вывода пагинации

В комментариях я написала, какие значения были изменены:

После изменения функции, HTML код из верстки нужно удалить. На первой странице навигация будет выглядеть так:
pager1

А на второй и следующей – добавится ссылка на предыдущую страницу:

pager2

На этом мы практически закончили с настройкой главной страницы нашей темы. В следующей части мы создадим шаблон archive.php, который будет выводить страницы архивов и рубрик.




14 комментариев к “Как создать тему для WordPress. Часть 6: постраничная навигация”

  1. Vadim

    Есть вопрос: как сделать пагинацию внутри постов? На некоторых блогах есть такая фича – внутри поста кнопки вперед/назад, и так можно перемещаться по записям.

    Ответить
    • Ирина

      Это делается в файле single.php. Нужно добавить функции:

      Ну и форматирование настроить.

      Можно также делать многостраничные посты. Для этого в цикле в файле single надо добавить:

      И потом в записи вставить:

      Ответить
  2. edgi

    здесь немного не понятно. что куда нужно копировать? последний код куда скопировать в function.php или в css?

    Ответить
    • Ирина

      Извините, немного не поняла, про какой кусок кода Вы говорите. Если это CSS – то соответственно вставляем в CSS, если PHP – то в functions.

      Ответить
  3. edgi

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

    Ответить
    • Ирина

      Нужно следить, чтобы код PHP находился внутри тегов < ?php и ?>. Если вы вставляете его в уже существующий файл, то возможно, вставлять теги php не нужно будет, если они уже есть.
      Я гуманитарий по образованию, однако разобралась )) Главное не бездумно копировать, и потом переживать, если что-то не работает, а пытаться разобраться в том, что делаешь.

      Ответить
  4. sk

    а где сам css код? статья неполная

    Ответить
    • Ирина

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

      Ответить
  5. PavelCreator

    Скрипт не до конца отлажен, есть проблемы с отображнием троеточия и дублирования последних и первых страниц пагинации. Я перешерстил код и немного его поправил, делюсь со всеми – http://codepad.org/nJXXPzfN

    Ответить
  6. Андрей

    Спасибо за интересную и полезную статью!

    Ответить
  7. Эмиль

    Все сделал, как описано в статье, но ничего не выходит. Почему-то у меня вся функция в текстовом режиме отображается вверху страницы. В чем проблема?

    Ответить
  8. Эмиль

    Заметил, что все, что лежит в файле functions.php отображается как текст. Причем везде, даже в админке.

    Ответить
  9. Ирина

    А у вас в начале файлу funtions есть тег <?php или нет?

    Ответить
  10. seok

    Получился хороший у Вас учебник по созданию темы. Я для пагинации всегда использую плагины. Было бы интересно узнать как создавать всплывающие формы. Типа как лендингов.

    Ответить

Оставить комментарий