Файл page.php контролирует то, что отображается на каждой из ваших страниц. Как вы знаете, в WordPress есть посты и есть страницы. Когда мы создаем тему WordPress, нам нужно думать о них отдельно, потому что есть шаблоны php, которые содержат код для блога/сообщений и другие, которые содержат код для страниц. Для страниц есть только page.php, но бывают случаи, когда вы будете использовать свой вариант. Например, если вы не хотите, чтобы каждая страница на вашем сайте была структурирована и стилизована одинаково.
page.php
На самом деле разобраться в структуре файле page.php достаточно просто, особенно, если вы уже ознакомились с шаблонами для главной страницы. Это файл, который содержит код для отображения структуры страницы. Он включает цикл для динамического вызова содержимого с соответствующей страницы. Вы помните, что мы обсуждали the_excerpt() и the_content () в предыдущей статье. Напомню, что excerpt() отображает ограниченный, предварительный просмотр текста из статьи, в то время как content показывает весь текст.
Давайте откроем наш page.php. Поскольку мы создаем свою тему по своему макету, все что сейчас есть в шаблоне можно удалить и вставить туда свой код. Но, я рекомендую прежде создать копию файла page.php и назвать ее, например, page-old.php, на всякий случай!
Итак, после того как мы создали копию, все содержимое page.php можно удалить и вставить свою версию:
the_title () выводит заголовок страницы.
Цикл находится в том же формате if/while, который мы видели раньше. Не забудьте использовать the_content (), а не the_excerpt().
В данном коде я разбиваю свою структуру страницы на основную область контента, а затем добавляю динамическую боковую панель, где можно добавлять виджеты.
Мы уже рассматривали, как это сделать в статье о sidebar.php. Но в данном случае я использовала немного другой способ. Если вы используете свою верстку, то не очень удобно на каждую страницу добавлять большое количество кода, чтобы вставить сайдбар, который одинаковый для многих страниц и возможно записей. Поэтому его удобно вынести в отдельный шаблон, и добавлять, как показано на скриншоте выше.
То есть нам нужно в корне темы создать файл sidebar-page.php – где page соответствует имени параметра, который мы передали в функции get_sidebar (). Хотя вы можете придумать свое название, главное потом не запутаться.
В этот файл внесем следующий код:
О том, что этот код значит, вы можете прочитать здесь. Коротко – мы зарегистрировали область виджетов с id «footer-first» в файле functions.php, затем в админ-панели добавили необходимые виджеты и теперь с помощью конструкции
<?php get_sidebar('page'); ?>
Можем вывести этот сайдбар в любом месте сайта с уже готовым оформлением, это очень удобно.
Вот что у нас получилось
Идентификация страниц
Для страниц, у нас есть два варианта системы именования. Мы можем использовать ярлык, как page-slug.php или идентификатор страницы, например page-id.php.
Ярлык
Ярлык или slug в WordPress это часть permalink страницы. Взгляните на картинку ниже, чтобы понять, что я имею в виду.
Для начала зайдите в админ-панель/ страницы/добавить новую.
Создадим страницу и назовем ее «Контакты». Сразу под названием появится строка, как на рисунке выше, где слово kontakty и будет ярлыком.
Идентификатор
Найти идентификатор страницы немного сложнее. Перейдите в меню слева на панели управления и нажмите «страницы». Список всех ваших текущих страниц будет отображаться в окне, и если вы просто наведите указатель мыши на имя страницы, о которой идет речь, в нижней части окна браузера появится небольшое черное поле с кучей информации о пути. Нам нужно найти часть, которая начинается post= , а затем записать число, которое находится в одинарных кавычках. Допустим, ваш идентификатор страницы равен 68, тогда имя файла шаблона будет page-68.php.
Это, безусловно, поможет вам создать WordPress тему гораздо быстрее и использовать пользовательские записи и страницы. Подробнее о системе именования можно прочитать на странице Tempates в Кодексе.
Система Шаблонов
Вернемся к page.php. Вы использовали приведенный выше код для структурирования и стиля всех ваших страниц с помощью этого файла шаблона. Но теперь вы хотите, чтобы одна из ваших страниц, например «обратная связь» была структурирована совершенно по-другому.
Существует еще одна концепция, которую мы должны обсудить. Если вы зайдете в Админ-панель/Странцы и откроете любую страницу, вы заметите в правом нижнем углу панель «атрибуты страницы».
Первая опция касается иерархии, которая предоставляет выбор: хотите ли вы, чтобы эта страница была отдельной страницей или, вы хотите, чтобы она была дочерней другой соответствующей страницы.
Второй вариант «шаблон» — это то, что мы будем обсуждать дальше.
В корне темы создадим файл и назовем его page-contact.php в которой пропишем следующий код:
<?php
/*
Template Name: Контакты
*/
?>
Теперь перезагрузим открытую страницу и увидим, что в атрибутах появилась новая вкладка «Шаблоны». Щелкнув по ней нам станет доступным базовый шаблон и только что созданный нами шаблон «Контакты».
Если вы выберете его и нажмете обновить, WordPress будет использовать файл шаблона, который вы можете оформить по своему усмотрению, и значит эта страница уже не будет выглядеть как остальные страницы на сайте. Например, я хочу, чтобы на странице контактов всегда находилось фото, допустим бабочки. Для этого добавляем картинку через панель-библиотека файлов, а в шаблоне page-contact.php пропишем
Теперь добавим какой-то текст на страницу через панель и вот что у нас получилось:
Как видим, эта страница совсем не похожа на то, что получилось ранее, когда мы создавали шаблон для всех страниц.
Таким образом можно оформить любую страницу как вам угодно, при этом, не затрагивая основной шаблон page.php.
Таких шаблонов также можно создавать сколько угодно, делая каждую страницу уникальной.
Спасибо вам за статью!
Все очень доходчиво и понятно.