Страница записей wordpress какой файл
В WordPress можно создавать страницы (pages) или записи (posts). Когда вы пишете обычную запись в блог - вы создаёте запись. Записи автоматически появляются на главной странице в обратном хронологическом порядке.
Также можно привести такие примеры как страницы об авторском праве, лицензионные соглашения, правила использования, информации о сайте. Кстати, хорошим правилом является наличие страницы с информацией о сайте или компании и/или страницы с контактными данными. Вот один из советов от Lorelle (на английском языке).
В целом, страницы очень похожи на записи - и те и другие имеют название и содержимое и могут использовать шаблоны представлений (Presentation Templates) для сохранения целостного вида сайта. Однако страницы имеют несколько ключевых отличий от записей.
О страницах коротко
Чем страницы являются и что могут:
Чем страницы НЕ являются и что НЕ могут:
Создание страниц
Для того чтобы создать страницу войдите в Wordpress с достаточными привилегиями для создания статей. Выберите Administration > Pages > Add New для того чтобы начать работу с новой страницей.
Наглядный обзор
Следующая диаграмма показывает, какие файлы шаблона вызываются при создании страницы WordPress, согласно иерархии шаблонов WordPress.
Способ 2: шаблон страницы через файл с конкретным названием (иерархия файлов шаблона)
Этот способ подразумевает создание файла в папке темы с конкретным названием: page-.php или page-.php . Подробнее смотрите по этой ссылке.
При создании страницы ей устанавливается ярлык (слаг, альтернативное название). Он используется в УРЛ страницы. И его можно изменить:
Изменение слага страницы
Для создание шаблона этим способом, вам нужно узнать слаг страницы и создать файл в папке темы. Допустим, наш слаг как на картинке равен contacts , тогда создадим в теме файл page-contacts.php . и заполним его нужным кодом (можно скопировать содержимое из файла шаблона page.php и отредактировать под себя). Все, теперь при посещении страницы мы должны увидеть новый шаблон. Аналогично можно взять ID (пусть 12) страницы и создать файл page-12.php .
Достоинства:
Нет необходимости заходить в админ-панель и устанавливать файл шаблона. Шаблон начинает работать сразу после создания файла. Удобно при разработке.
Недостатки:
Шаблон создается только для одной, конкретной страницы. Зависит от слага страницы, если он изменится шаблон работать не будет. Если использовать ID, то зависимость от слага пропадает, но становится непонятно в файла темы, к какой странице относится шаблон (если несколько шаблонов с ID).
Практически бесполезен при написании шаблонов, а тем-более плагинов. Его можно использовать, когда правишь свой сайт, в котором слаг или ID страницы известны заранее.
Как это работает:
WordPeress подбирает какой файл использовать в следующем порядке (файлы должны быть в корне темы):
- .php (когда используется шаблон страницы)
- page-.php
- page-.php
- page.php
- singular.php
- index.php
Способ 3: шаблон страницы через фильтр "template_include" (коддинг)
Это продвинутый способ, он более сложный, но вместе со сложностью он открывает широкие возможности. С помощью этого способа можно задать шаблон любой странице, записи, категории, любой публикации на сайте или вообще группе любых публикаций.
Рассмотрим на примере:
Такой код нужно разместить в файл темы functions.php , в плагин, или подключить как-то еще.
Как видно из примера во время фильтра template_include уже работают условные теги, установлены глобальные переменные: $wp_query , $post .
Достоинства:
Можно установить шаблон для любой страницы или группы страниц. Практически полный карт-бланш в действиях.
В этом посте речь пойдет о том, какие бывают названия у файлов темы WordPress и за показ какой страницы на сайте отвечает каждый из них. Это очень важные, нужные, и в тоже время очень простые, для понимания, знания. Ими должен обладать каждый, кто работает с WordPress. Ниже полностью расписана структура файлов темы WordPress и порядок их подключения (иерархия).
Об иерархии файлов темы я упоминал в статье «Условные теги в WordPress». А ниже тоже самое, только описано подругому (надеюсь более понятно).
Иерархия шаблонов
Какой шаблон используется для показа отдельных страниц?
WordPress просматривает несколько файлов в активной теме. Первый найденный будет использован для показа любой страницы. WordPress просматривает файлы в следующем порядке:
- Выбраннный для данной страницы шаблон.
- page.php
- index.php
Способ 1: шаблон страницы через файл с произвольным названием (классический способ)
Это самый распространенный способ создать шаблон страницы в WordPress. Для этого нужно создать .php файл, например, tpl_my-page.php в папке темы и в самом начале файла вписать метку, что созданный файл является шаблоном для страниц:
Теперь при создании страницы в админ-панели в блоке «Свойства страницы» мы сможем выбрать "шаблон":
С версии WordPress 4.7. такие шаблоны страниц можно создать для любого типа записи, а не только для page. Для этого дополните комментарии строкой: Template Post Type: post, page , где post, page - это названия типов записей к которым относится шаблон.
Преимущества:
Создав один шаблон, мы можем удобно применять его для разных страниц. Например, можно создать шаблон без боковой панели и использовать его на разных страницах.
Недостатки:
После создания файла шаблона в папке темы, нужно зайти в админ-панель и установить шаблон для страницы. При разработке это не всегда удобно. Поэтому если подразумевается использовать шаблон только для одной страницы, используйте второй метод.
Как это работает:
Когда вы заходите в админ-панель на страницу редактирования записи древовидного типа, WordPress просматривает все .php файлы в корневой папке темы и в всех вложенных папках (просматривается один уровень) на наличие следующей строки (строка может располагаться где угодно и как угодно в файле):
Все файлы с подобными строками собираются и выводятся в выбор шаблона в блок "Атрибуты страницы".
При публикации страницы, в произвольное поле _wp_page_template записывается название файла шаблона или default , если шаблон не указан:
_wp_page_template = default
_wp_page_template = tpl_my-page.php
Далее, когда пользователь посещает страницу, WordPress проверят метаполе _wp_page_template , если шаблон установлен, то используется файл шаблона. В противном случае поиск шаблона страницы продолжается по иерархии.
Поиском подходящих файлов шаблона занимается метод это делает метод WP_Theme::get_post_templates().
Локализация названия шаблона
Название задается в php комментариях, поэтому нет возможности перевести эту строку обычным способом: через функцию перевода, заключенного в теги . Однако WP сам пытается перевести эту строку при выводе, используя подгруженные данные перевода. Таким образом, для перевода нам нужно как угодно добавить эту строку в список переводов темы. Сделать это удобнее всего сразу после заголовка - так всем будет понятно зачем нужен такой странный вызов функции переводов __() :
my-theme — это ID перевода - параметр Text Domain: , который указывается в заголовках темы и при подключении файла перевода, см. load_theme_textdomain().
Дополнительные методы установки главной страницы для версий ниже 2.1
Если не использовать встроенную возможности установки главной страницы остаётся две возможности. Первая - использовать модуль Static Front Page Plugin. Он модифицирует запрос к главной странице и sticks the Page with a Page slug of "home" to the front page.
В качестве альтернативы модулю WordPress попытается распознать "home.php" в папке с шаблонами и использовать его вместо "index.php". Однако, если ваша главная страница - не блог, примите во внимание, что шаблон home.php будет всегда показывать её как блог, хотите вы этого или нет. Вы можете использовать метку шаблона query_posts() перед вызовом главного цикла. Например:
вызовет запись с именем страницы "home".
Связи записей (родители и таксономии)
Так как любой контент для удобного чтения должен быть структурирован, записи можно связывать между собой:
Древовидные записи связываются друг с другом как родительские и дочерние. И они не имею связь с рубриками (таксономиями). Древовидная связь записывается в поле post_parent таблицы wp_posts .
Подробное объяснение, что такое таксономии в WordPress.
Схематически это выглядит как-то так:
Связи в нестандартных типах записей:
- Элементы меню - используют логику древовидных записей для связи между собой.
- Ревизии и Вложения - прикрепляются к родительской записи через поле post_parent таблицы wp_posts .
Примеры
Мета-данные: Дополнительные данные записей
Задачи при разработке могут быть самыми разными и имеющихся полей в таблице wp_posts всегда нахватает. Поэтому для расширения возможностей, любая запись в WordPress, т.е. любая строка в таблице wp_posts может иметь дополнительные данные и они могут быть какими угодно - произвольными. Такие данные называются: метаданные, их еще называют мета-поля, произвольные поля, кастомные поля и бог знает как еще.
Все метаданные записей хранятся в таблице wp_postmeta :
Поле | Значение | Индекс |
---|---|---|
meta_id | ID метаполя. Обычно нигде не используется. | основной |
post_id | ID записи из таблицы wp_posts. | post_id |
meta_key | Ключ метаполя. | meta_key |
meta_value | Значение метаполя. Всегда строка, массивы хранятся в сериализованном виде | - |
Для записей типа post, page метаполями можно управлять на странице редактирования записи:
Как включить метабокс произвольных полей в блочном редакторе Gutenberg?
Заметки по мета-полям (произвольным полям)
У ревизий метаданных нет.
Мета-поле, имя которого начинается с нижнего подчёркивания ( _ ) воспринимается движком как скрытое и по умолчанию в админке не отображается.
Так например в ВП для записей есть следующие служебные метаполя:
- _wp_page_template — сохраняется название php файла шаблона, если для страницы был указан файл шаблона.
- _edit_lock — записывается метка времени и ID пользователя, который редактирует запись.
- _edit_last — ID пользователя, который последним правил запись.
- _thumbnail_id — ID миниатюры записи (вложения).
Для управления метаполями у меня есть класс Kama_Post_Meta_Box. Также есть более мощные плагины:
Функции метаполей поста
Для управления метаполями в коде темы или плагина, существуют специальные функции:
Фильтры
Иерархию файлов можно изменить через динамические фильтры:
(type)_template_hierarchy - фильтрует массив названий файлов иерархии, по которому будет идти поиск нужного файла. С WP 4.7.
Все варианты параметра type смотрите в одноименном параметр $type функции get_query_template(). Вот они:
В этой статье поговорим о записях ВордПресс, точнее о том, как устроена их структура в движке. В сети есть информация о том, что такое записи и чем они отличаются от страниц. Например, вот статья на эту тему - статья отличная, но для новичков, а если копнуть глубже, то на эту тему можно поговорить еще.
Первое что нужно сделать — это разделить понятие «Запись» на узкое и широкое. Забегая вперед скажу, что в текущей структуре WordPress (где WP - это скорее конструктор, а не блоговый движок), называть посты записями - это не совсем правильно. Я понимаю, что в русском слово «пост» - это англицизм, но когда посты называют записями, и новые типы записей тоже называют записями - это определенно усложняет понимание. К примеру, фразу «нужно создать запись», можно понять как «создать публикацию» или «создать новый тип-записи в структуре WordPress». В такой ситуации, когда юный разработчик еще нехорошо понимает как и что работает, он обязательно запутается. Поэтому, давайте, посты (записи типа post) будем называть постами, а «запись» пусть будет собирательным названием для всех видов типов записей - строка (запись) в таблице wp_posts .
- Запись в узком смысле
- Запись в широком смысле
- Дефолтные Типы записей (post_type)
- Дефолтные Статусы записей (post_status)
- Каждое поле таблицы wp_posts :
- Мета-данные: Дополнительные данные записей
- Заметки по мета-полям (произвольным полям)
- Функции метаполей поста
- Связи записей (родители и таксономии)
- Заметки
- Очистка контента записи (поста)
Создание собственных шаблонов страниц
Файлы, определяющие шаблоны, находятся в папке с темой. Для создания собственного шаблона нужно создать файл. Итак, для примера, назовём наш новый шаблон snarfer.php. В первых строчках файла напишем следующее:
Приведённый код определяет что файл snarfer.php - шаблон "Snarfer" (естественно, вы можете переименовать "Snarfer" во что угодно, только не запутайтесь). Это имя появится в редакторе тем со ссылкой на соответствующий файл.
Файл можно назвать как угодно с расширением .php (об именах, которые нельзя использовать см. в reserved Theme filenames; это специальные имена, зарезервированные системой для внутреннего использования).
Примеры приведены ниже. С того момента, как вы создали шаблон страницы и поместили его в папку с темой он становится доступным для выбора во время создания или правки страницы.
Примечание: когда страница создаётся или правится, настройка шаблона не появляется пока не будет создан как минимум один шаблон, как описано выше.
Другие файлы темы
Также, в WordPress есть общепринятые подключаемые файлы. Он не участвуют в иерархии, а просто подключаются вручную там где нужно. Например файл sidebar.php подключается в файле шаблона темы с помощью функции get_sidebar().
Список таких «подключаемых» файлов:
- functions.php - всегда подключается автоматически при загрузке темы.
- header.php - get_header()
- sidebar.php - get_sidebar()
- footer.php - get_footer()
- searchform.php - get_search_form()
Общая идея
WordPress использует Строку Запроса — информацию, содержащуюся в каждой ссылке вашего сайта — для того, чтобы определить какой шаблон или набор шаблонов использовать для отображения страницы.
Сперва WordPress находит каждую Строку Запроса по типам запросов — т.е. определяет какой тип страницы (страница поиска, страница категорий, главная страница и др.) был запрошен.
После этого шаблоны выбираются и содержимое страницы генерируется в порядке, предложенном иерархией шаблонов WordPress, в зависимости от доступности шаблонов конкретной темы WordPress.
WordPress ищет файлы шаблонов со специальными именами в папке текущей темы и использует первый подходящий файл шаблона указанный в соответствующем запросе.
За исключением основного шаблона index.php, разработчики тем могут использовать или не использовать файлы шаблонов по желанию. Если WordPress не находит шаблон с указанным именем, он переходит к следущему по иерархии шаблону. Если не один из искомых шаблонов не подходит, WordPress использует index.php (шаблон главной страницы Темы).
WordPress как CMS
Вы можете использовать WordPress для управления содержимым. Если вы так решили - вам понадобится создать некоторое (возможно, большое) количество страниц.
Кому это может пригодиться
Со времен появления тем оформления в WordPress версии 1.5, шаблоны становятся все более настраиваемы. Перед тем как создать свою тему, вам нужно понять механизм работы шаблонов: как WordPress отбирает файлы-шаблоны для вывода разных страниц в вашем блоге. Если вы хотите что-то изменить в готовой теме, эта статья поможет вам понять, какой шаблон нужно редактировать.
Типы страниц и названия файлов
Теперь когда мы понимаем как работает иерархия, давайте посмотрим на все варианты названий файлов, которые WordPress пытается найти при посещении той или иной страницы сайта.
Полная схема для всех видов страниц и подходящих для них файлов выглядит так:
Теперь, я распишу эту картинку, сделаю из неё список страниц сайта и подходящие для них php файлы темы.
Файлы из списка ниже должны находится в папке темы.
Шаблоны страниц
Отдельные страницы могут использовать собственный шаблон страницы (файл-шаблон PHP, например, snarfer.php) который можно включить в создаваемую тему (см. ниже Создание собственных шаблонов страниц). Вновь созданный шаблон будет перекрывать шаблон по умолчанию page.php.
См. ниже Какой шаблон используется для показа отдельных страниц? для понимания того, как именно будет использован шаблон. Но лучше сначала прочтите нижеследующее и ответ будет понятен. :)
WordPress может быть настроен на использование разных шаблонов для разных страниц. Внизу административной панели Write > Page (или на боковой панели - зависит от версии) имеется выпадающее меню "Page Template", в котором можно выбрать шаблон, используемый данной страницей.
Примечание: Чтобы выбор шаблона работал необходимо наличие хотя бы одного собственноручно созданного шаблона для данной темы (см. ниже Создание собственных шаблонов страниц). Если же все условия выполнены, но выбора шаблона не видно, попробуйте вновь активировать текущую тему.
Динамическая природа страниц WordPress
Веб-страница может быть статичной или динамической. Статичные страницы, как и обычные файлы HTML, созданные при помощи редактора, создаются один раз и не меняются между визитами посетителей. Динамические же, созданные с помощью WordPress, напротив, нуждаются в постоянном обновлении при каждой загрузке. В данном случае страница создаётся заново. Это предполагает интенсивное использование кода PHP, который определяет посещение и создаёт страницу "на лету".
In the context of web publishing, static and dynamic mean what has been described above. More generally, however, static can mean "characterized by a lack of change". It is easy to see how this definition influenced the word's use in describing types of web pages. It is also easy to see why people think of Pages as being static; Posts come and go, but Pages are here to stay since Pages are typically used to display information about your site which is constant (e.g., information about yourself, description of your site).
In other words, a Page contains static information but is generated dynamically. Thus, either "static" or "dynamic" may be validly used to describe the nature of the WordPress Page feature. However, in order to avoid confusion, and because Pages themselves are dynamic while it is only their contents which are in some way static, this document does not refer to Pages as being static.
В этой статье я расскажу о способах создания шаблонов для постоянных страниц WordPress. Каждый способ несет в себе плюсы и минусы. Но прежде чем начать, коротко о том, что такое страницы и чем они отличаются от записей.
В WordPress можно создавать страницы (page) и записи (post). Отличаются они тем, что записи: попадают в ленту на главной странице; для записей указываются категории; записи не могут быть древовидными, а страницы: используются для такого содержимого как "Обо мне", "Контакты", "Карта сайта"; не имеют категорий, а имеют древовидную структуру. Записи обычно предназначены для хронологической информации (по времени добавления), а страницы для древовидной структуры не зависимой от времени. Для примера, эта статья опубликована как "запись" в рубрике "Кодекс", а ссылки в меню шапки ведут на страницы: Функции.
Создание страниц в WordPress
Часто нужно создать отдельный шаблон страницы, чтобы вывод информации отличался от остальных страниц. Создавая шаблон страницы в WordPress, можно совершенно изменить страницу: удалить сайдбар, подвал, шапку, можно изменить страницу до неузнаваемости. Например, на этом сайте так изменяется страница на которой выводятся коды файлов WordPress.
Введение
Запись в широком смысле
Это любые элементы которые содержат в себе данные сайта (контент). Все эти данные записывается в базу данных, в таблицу wp_posts .
Структура таблицы WordPress wp_posts
Так как все элементы находится в одной таблице - они имеет одинаковые данные, а значит технически записи не сильно друг от друга отличаются. Я бы выделил 3 основных различия:
Древовидная структура. Одна запись может быть дочерней или родительской к другой. Такой структурой обладают постоянные страницы.
Название типа записи. Каждый тип записи имеет свое название: посты называются post , страницы page , произвольно созданные типы называются так как их назвали, например portfolio .
Я выделил это различие, потому что поле post_type в таблице wp_posts индексное. Поэтому образно можно сказать, что тип разделяет таблицу на отдельные таблицы по типу записей, т.е. во время запроса по выборке записей, WordPress очень быстро «урезает» таблицу до указанного типа записей и работает только с этим типом.
Дефолтные Типы записей (post_type)
Следующие типы записей регистрируются в WordPress по умолчанию.
Дефолтные записи регистрируются функцией create_initial_post_types().
Дефолтные Статусы записей (post_status)
Следующие статусы записей используются в WordPress из коробки.
Статус | Описание |
---|---|
publish | Опубликованный пост (страница или тип записи). |
pending | Запись на рассмотрении перед публикацией. |
draft | Черновик записи. |
auto-draft | Только созданный пост, еще без заголовка, контента и другой информации. |
future | Запись запланированная к публикации в будущем. |
private | Запись не доступная не авторизованным пользователям. |
inherit | Ревизия или вложение (revision or attachment). Смотрите get_children(). |
trash | Запись находящаяся в корзине. |
Функции связанные со статусом записи (полный список смотрите здесь):
Функция | Описание |
---|---|
get_post_status_object() | Получает объект данных указанного статуса записи (поста). |
is_post_status_viewable() | Determine whether a post status is considered "viewable". |
get_post_statuses() | Возвращает массив следующих базовых статусов поста: Draft, Pending, Private, Publish. |
Каждое поле таблицы wp_posts :
Как видно, есть общие поля для всех типов записей, например: post_type , post_title . Тогда как некоторые поля используются для одних типов, а другие для других. Например поле post_mime_type используется только для вложений, поле post_parent используется для древовидных типов записей, поля to_ping и pinged используются для записей с контентом, например: посты, страницы, произвольные типы.
Большое значение в этой таблице играют индексные поля: post_name , post_parent , post_author , post_type + post_status + post_date (составной индекс). Индексы нужны, чтобы ускорить запросы по выборке записей. Не буду вдаваться в подробности индексов, о них вы лучше почитайте в отличной статье: Индексы в MySQL.
На этом с понятием «записи в WordPress» думаю можно закончить и перейти к другим важным знаниям, которые связаны с записями.
Разница между post_content_filtered и post_content
post_content_filtered - место, где хранится временное содержимое. WordPress вообще не использует это поле, оно предназначено для плагинов. Оно устанавливается пустым каждый раз при обновлении поста, за исключением случаев, когда оно указано. То есть, если это поле указано при обновлении записи, то оно будет записано в БД, но если оно не будет указано при очередном обновлении, то оно будет стерто.
Записи
Запись (запись post)
- single-post-.php
- single-post.php
- single.php
- singular.php
- index.php
Произвольный тип записи
- .php (для древовидного типа с поддержкой шаблонов. С WP 4.7)
- single--.php
- single--.php
- single-.php
- single.php
- singular.php
- index.php
Вложение
- .php
- .php
- -.php
- attachment.php
- single-attachment-.php (позволяет указать шаблон для отдельной картинки)
- single-attachment.php (тоже что и attachment.php)
- single.php
- singular.php
- index.php
Под началом и концом MIME типа, имеется виду первая и последняя часть MIME типа, разделенная / . Например, MIME-тип текстового файла: 'text/plain' и значит будет проверяться наличие файл text.php , затем plain.php , затем text-plain.php .
Полный список MIME типов смотрите в описании get_allowed_mime_types().
Использование тегов условий
WordPress может несколькими способами подбирать шаблоны в соответствии с типом контента. Разработчики Тем для WordPress могут также использовать теги условий (Conditional Tags) для того, чтобы определенный шаблон был использован на конкретной странице блога. Некоторые Темы могут не содержать всех файлов-шаблонов, описанных в этой статье. В некоторых Темах использованы теги условий (conditional tags) для вызова других шаблонов. Читайте подробнее здесь: теги условий (Conditional Tags) и "Query Based" in Theme Development.
Заметки
Очистка контента записи (поста)
Контент и отрывок записи перед сохранением в бд очищается функцией wp_filter_post_kses(), которая повешена на хук (field_no_prefix)_save_pre :
Заметка: В этой статье содержится сложная тема. См. Основы шаблонов для получения базовой информации по шаблонам WordPress.
Примеры страниц и шаблонов
Ниже приводится список примеров. Вы можете добавить свои.
Изменение URL или слага (Slug) страниц
С версии 2.5 смена URL страниц стала менее интуитивной. Если у вас включены пермалинки (Permalinks) и вы выбрали настройку Day and Name(Нажмите Settings и в открывшемся списке Permalinks), то пермалинк автоматически покажется под названием записи, когда вы начнёте печатать в теле записи (не только в заголовке).
Несмотря на то, что вы можете выбрать несколько разных настроек пермалинков или вообще их не задействовать, для того чтобы редактировать URL страницы, вы должны сделать следующее:
- Создать страницу с помощью Write > Page.
- Опубликовать её, нажав Publish.
- Перейти в Manage > Pages.
- Нажать Edit рядом со страницей.
- Посмотреть на пермалинк под заголовком и нажать Edit, чтобы его поменять.
Таким образом, если у вас не включено использование пермалинков, вы должны опубликовать ваши страницы перед тем как устанавливать URL.
Запись в узком смысле
Это публикация записи с типом post , который существует в WordPress сразу после установки. Он прикрепляется к рубрикам или меткам. Таким «записям» можно противопоставить «страницы» (публикация записи с типом page ).
Подробнее о иерархии шаблонов
Рассмотрим приоритет использования шаблонов при выводе разных типов контента в WordPress.
Пример того как работает иерархия
- category-plugins.php
- category-25.php
- category.php
- archive.php
- index.php
Иерархия, в данном случае — это последовательная проверка на существование файла шаблона. Для контента одной страницы на сайте, может подходить несколько файлов. Проверка какой именно файл будет использован идет по-очереди. Т.е. в WordPress есть список подходящих названий файлов, каждое из названий проверяется по очереди на физическое существование такого файла, как только WordPress видит что файл существует поиск подходящего файла прекращается и найденный файл используется в качестве шаблона.
О чём эта статья
Эта статья отвечает на следующий вопрос:
Какие файлы шаблонов использует WordPress для отображения определённого типа страниц?
Архивы с содержимым
Шаблон, который сначала показывает вверху содержимое страницы, а ниже - список архивов по месяцам и рубрикам. Он работает с темой по умолчанию (Kubrick), но с незначительными доработками подойдёт для других тем.
Сохраните код ниже в arc-cont.php:
Шаблон показывает записи определённой рубрики в зависимости от того, какая страница показывается. Он работает с темой по умолчанию (Kubrick), но с незначительными доработками подойдёт для других тем.
Сохраните код ниже в pageofposts.php:
Шаблоны встроенной темы по умолчанию
Встроенная тема по умолчанию содержит три шаблона:
- page.php - шаблон страницы по умолчанию: отображает содержимое страницы
- archives.php - игнорирует содержимое и вместо него показывает список архивов по месяцам и рубрикам.
- links.php - также игнорирует содержимое и вместо него показывает ссылки, используя wp_list_bookmarks().
Вывод страниц на сайте
WordPress способен автоматически создавать список страниц сайта, например в боковой колонке, используя метку шаблона называемую wp_list_pages(). Прочтите wp_list_pages для более подробной информации, в том числе как:
- Сортировать список страниц. Полная настройка порядка вывода описана в секции "Page Order" административной панели Write > Page. из вывода или прятать страницу
- Управлять отображением страниц, то есть выводить ли все страницы или некоторые подстраницы.
- Определять насколько глубоко список уходит в иерархию страниц.
Естественно, вы можете определять ссылки на страницы вручную используя HTML-ссылки. Например, если вы хотите вывести страницу об авторских правах в "подвале", ссылка может быть такой:
Если пермалинки НЕ настроены
Если пермалинки настроены
Использование страницы в качестве главной
В WordPress версии 2.1 появилась возможность использовать любую страницу в качестве главной.
Для этого необходимо перейти в Параметры > Чтение в административной панели. В секции "На главной странице отображать" можно выбрать что показывать в качестве главной страницы. По умолчанию там стоит значение "Ваши последние записи".
Включение страницы
Также вы можете включить страницы в разные места сайта. Для этого есть модуль Improved Include Page с помощью которого процесс включения существенно облегчается.
Архивы
Рубрика
- category-.php
- category-.php
- category.php
- archive.php
- paged.php (если страница пагинации)
- index.php
Метка
- tag-.php
- tag-.php
- tag.php
- archive.php
- paged.php (если страница пагинации)
- index.php
Таксономия
- taxonomy--.php
- taxonomy-.php
- taxonomy.php
- archive.php
- paged.php (если страница пагинации)
- index.php
- archive-.php
- archive.php
- paged.php (если страница пагинации)
- index.php
- author-.php
- author-.php
- author.php
- archive.php
- paged.php (если страница пагинации)
- index.php
- date.php
- archive.php
- paged.php (если страница пагинации )
- index.php
Как это работает в коде ядра
За всю логику: какой файл подключать, отвечает файл ядра wp-includes/template-loader.php. Если разобраться, в нем все описано. Но, это занятие не особо интересное, поэтому я его распишу.
Прежде всего. template-loader.php подключается после того как загрузится вся среда WordPress. После того, как отработает файл wp-load.php и обработается основной запрос - функция wp(). Т.е. template-loader.php подключается в самом-самом конце PHP скрипта.
Дальше идут проверки по всем условным тегам где выясняется какой файл шаблона подходит под текущий запрос. Проверяется условный тег, затем еще один и еще. Как только один из условных тегов сработал, вызывается соответствующая функция, которая находит подходящий файл шаблона и возвращает путь до него. Все такие функции описаны в get_query_template().
Дальше - путь до файла шаблона определен! Теперь путь проходит через фильтр template_include. Который позволяет нам изменить путь до файла шаблона для текущего запроса.
Готово - файл шаблона подключается в PHP, таким образом запускается визуальная часть генерации страницы.
Встраивания (embeds)
Чтобы изменить только контент встраивания, можно в теме создать файл embed-content.php и описать там HTML. Оригинальный HTML находится в файле движка /wp-includes/theme-compat/embed-content.php
404 страница
Contents
Главная страница
- front-page.php
- Логика постоянных страниц, когда для главной выбрана страница в настройках.
- home.php
- index.php
Структурирование страниц
Так же как в рубриках могут быть подрубрики, в страницах могут содержаться подстраницы (или дочерние страницы, если так удобнее), вместе создавая иерархию страниц.
Например, предположим вы создаёте сайт для продавца турпутёвок и хотели бы иметь отдельную страницу для каждого континента и страны, куда могут продаваться путёвки. Вы можете начать с создания страницы "Африка" на которой будет общее описание о путешествии на континент. Затем вы создаёте страницы, вложенные в эту, то есть подстраницы, со странами "Лесото", "Того", "Камерун" и "Свазиленд". Затем в таком же ключе вы создаёте страницу "Южная Америка" с подстраницами "Бразилия", "Аргентина" и "Чили". И вот что получится:
- Африка
- Камерун
- Лесото
- Свазиленд
- Того
- Аргентина
- Бразилия
- Чили
Для того, чтобы начать, перейдите в Administration > Write > Write Page , в верхнем правом углу панели и нажмите выпадающий список "Page Parent". Этот список содержит перечень всех созданных страниц. Для преобразования текущей страницы в подстраницу, или наоборот, для преобразования в родительскую страницу выберите необходимый пункт из выпадающего меню. Текущая страница станет дочерней по отношению к выбранной.
Когда страницы выводятся, все дочерние страницы будут располагаться непосредственно под родительскими. Пермалинки при этом также будут отражать иерархическую структуру этой страницы.
В нашем примере для страницы "Камерун" пермалинк будет такой:
Читайте также: