Шаблоны и части шаблона — полное редактирование сайта
В этом упражнении вы научитесь создавать шаблоны и части шаблона для блочных тем.
Шаблоны — это ваши базовые файлы. Урок начинается с index.html , а затем вы добавите шаблоны для отдельного поста, страницы, архива и поиска.
Вы будете использовать частей шаблона для организации и добавления структуры темы, чтобы избежать повторения кода. Вы начнете с верхнего и нижнего колонтитула сайта и объедините их с файлами шаблонов.
Для этого полного урока по редактированию сайта вам потребуется:
- Установка WordPress с тестовым содержимым.
- Плагин Gutenberg, версия 14.1 или новее. — Этот урок был обновлен в рамках подготовки к WordPress 6.1, и для работы примеров требуется активация плагина Gutenberg.
- Пустая тема, в которую вы добавите файлы шаблонов блоков.
Если вы создали пустую тему на предыдущем уроке, продолжайте использовать ее в этом упражнении.
Если вы еще не настроили тему, вы можете загрузить первую часть файлов урока с GitHub.
Расчетное время чтения: 17 минут
Обновлено 17 сентября 2022 г. для Gutenberg 14.1.
Оглавление
- Создание первых частей шаблона
- Объединение шаблонов и частей шаблона
- Добавление раздела блога
- Блок цикла запросов
- Шаблон сообщения 9 9 Разбиение на страницы80018
- Создание единого шаблона сообщения
- Переход к следующему и предыдущему сообщению
- Добавление области комментариев
- Отображение комментариев в более старых версиях WordPress
- Отображение комментариев с активным плагином Gutenberg или с WordPress 6.0+
- Разбивка комментариев на страницы
- форма
- Создание шаблона одной страницы
- Шаблоны архива
- Настройка страницы результатов поиска
- Следующие шаги
Создание первых частей шаблона
Если ваша начальная тема еще не включает папку с именем templates с пустым файлом index.
html внутри, создайте их, прежде чем продолжить.Часть шаблона представляет собой файл HTML, настраиваемый тип записи (wp_template_part) и блок.
Звучит сложно? Думайте о них как о блоках, которые отображают содержимое, которое вы разместили внутри них. Части шаблона не являются обязательными, но они помогают авторам темы структурировать тему с помощью многократно используемых более мелких частей.Внутри корневой папки темы создайте папку с именем parts . Создайте в этой папке файлы footer.html и header.html .
WordPress будет искать в этой папке действительные файлы, поэтому вы не сможете использовать другое имя папки.Затем добавьте содержимое в части шаблона, чтобы их можно было идентифицировать при тестировании темы. Вы можете добавить блоки заголовка сайта и слогана в header.html со следующей разметкой блока:
В footer.html добавьте общеизвестный текст кредита нижнего колонтитула:
Объединение шаблонов и частей шаблона
Чтобы включить часть шаблона в файл шаблона, вы используете блочную разметку для частей шаблона.
Части шаблона самозакрывающиеся, так как содержимое находится внутри файлов HTML.Откройте index.html и добавьте две части шаблона :
Точно так же, как блоки, шаблоны и части шаблонов самодостаточны.
Открывающий тег и закрывающий тег должны быть в одном и том же шаблоне.
Вы не сможете поместить открывающий тег для группового блока в шаблон заголовка и закрыть его в шаблоне нижнего колонтитула.Для этих двух важных ориентиров необходимо использовать правильный HTML-элемент. Добавьте атрибут
tagNameдляи:Если вы хотите иметь возможность идентифицировать верхний и нижний колонтитулы с помощью CSS, добавьте пользовательский CSS
className:ClassName атрибут эквивалентен добавлению класса в поле «Дополнительные классы CSS» на расширенной панели боковой панели настроек блока:
Если вы просматриваете свой веб-сайт сейчас, он должен выглядеть примерно так:
Добавление раздела блога
Вы создадите блог, используя цикл запросов и блоки шаблонов сообщений.
Но сначала вам нужно добавить элемент в качестве оболочки для списка сообщений в блоге. Вы также включаете ссылку автоматического пропуска, включив элемент. В index.html между двумя частями шаблона добавьте групповой блок с атрибутом
tagNameсо значениемосновной. Затем обновитедо:Если вам интересно, почему внутри этой группы нет внутреннего контейнера, WordPress удалил внутренний контейнер для тем полного редактирования сайта в Gutenberg 10.3.
✋ Параметр типа макета был обновлен в Gutenberg версии 14.1 и WordPress 6.1 (выпуск запланирован на ноябрь 2022 г.). Есть два новых типа макета:
- Ограниченный : Блоки внутри группы располагаются по центру по горизонтали. Ширина блоков — это значение, которое вы добавили к
contentSizeв файле theme.json. - По умолчанию : Блоки внутри группы выравниваются по левому краю и заполняют контейнер по ширине.

Тип макета заменил предыдущую настройку макета, в которой вы устанавливаете атрибут
наследоватьна true или false . Я привожу этот пример на случай, если вы хотите создать тему, которая поддерживает версии WordPress ниже 6.1:Обновленные параметры макета будут подробно описаны в следующем уроке.
Блок цикла запроса
Блок цикла запроса имеет множество дополнительных функций. Вы можете положиться на настройки по умолчанию для базового блога: Отображать сообщения по дате, по убыванию. Блок цикла запроса без каких-либо настроек наследует запрос от шаблона страницы. Другими словами, он отображает различный контент в зависимости от контекста.
- В индексном или домашнем шаблоне блок запросов отображает сообщения из каждой категории
- В архиве он показывает элементы из выбранного типа сообщений или таксономии (категории или тега)
- На странице результатов поиска отображаются результаты поиска
Когда вы вручную добавляете запрос в редакторе блоков, это эквивалентно включению параметра «Наследовать запрос из шаблона»:
Шаблон сообщения
Каждый Блок запроса использует внутренний блок с именем
шаблон сообщения, который является блоком-контейнером для блоков сообщений, таких как заголовок сообщения и его содержимое.
WordPress передает данные из запроса в шаблон сообщения, а затем повторяет блоки внутри шаблона сообщения для каждого сообщения.<дел>
Я хочу, чтобы в блоге над выдержкой сообщения отображалось избранное изображение, заголовок сообщения, автор и дата. Вы можете экспериментировать с другими блоками сообщений, если поместите их в шаблон сообщения.
Заголовок сообщения должен быть ссылкой. В противном случае посетители не смогут добраться до отдельных сообщений из блога. В том числе
"isLink": правдадобавит правильную ссылку для каждого сообщения внутри цикла. В примере кода я решил не отображать аватар автора сообщения, установив для параметраshowAvatarзначение false:Не знаете, какие новые блоки сообщений вы можете использовать? Ознакомьтесь со страницей полной информации о блоке редактирования сайта.
Наконец, я думаю, что мог бы улучшить этот блог, показав категории, и разметка блока для отображения категорий:
Вы можете использовать блок терминов записи для отображения любых терминов таксономии, а категория — это только один вариант.

Вы не хотите, чтобы блог повторял разбиение на страницы для каждого сообщения, поэтому вместо этого поместите блок разбиения на страницы
внутри запроса, но вне шаблона сообщения:Блок разбивки на страницы запроса также может отображать количество страниц и показать, какую страницу вы просматриваете. В примере я включил только ссылки на следующую и предыдущую страницы.
Теперь ваш файл index.html должен выглядеть так:
Передняя часть вашего веб-сайта должна выглядеть примерно так:
Создание единого шаблона сообщения
Я хочу показать немного разные вещи для страниц и отдельных сообщений. И сделать это; каждому формату нужен собственный шаблон блока, начиная с отдельного поста.
Сохраните копию index.html как single.html в папке
templates.
Конечно, вы хотите показать только текущую запись, поэтому вам нужно убрать цикл.
В single.html остался следующий код:Поскольку это один пост, я также удалил атрибут
из заголовка поста.isLink
Чтобы показать все содержимое, замените
на
:Эквивалентthe_content()в традиционной теме на основе PHP.Вы можете отображать теги, используя вариант тегов сообщений в блоке терминов сообщений. В примере я добавил теги под контентом:
Если вы хотите добавить дополнительный интервал, вы можете добиться этого, добавив отступы, поля или разделители между содержание и метаинформация сообщения:
Навигация по следующему и предыдущему сообщению
Блок ссылок навигации по сообщению добавляет ссылку на следующее сообщение, а ссылка на предыдущее сообщение представляет собой вариант блока .
Если нет следующего или предыдущего поста, на который можно было бы сослаться, блок не отображается на лицевой стороне веб-сайта. Наценка для двух вариантов блока:Версия Gutenberg 13.
0 устарела от блока комментариев к сообщениям в пользу нового блока цикла запроса комментариев. С новым блоком у вас гораздо больше контроля над макетом.
Вы можете размещать, добавлять и удалять внутренние блоки, такие как имя автора комментария, дата комментария и ссылка для ответа.Но это также означает, что на веб-сайтах WordPress, где вы не используете Gutenberg, возникают проблемы с обратной совместимостью, поэтому я покажу вам два способа отображения комментариев.
Если ваша тема поддерживает WordPress 5.9и не требует Гутенберга, вам нужно отображать комментарии с помощью одного блока, называемого комментариями к сообщениям:
Блок цикла запросов
комментариев настроен так же, как и цикл запроса, который вы использовали для отображения сообщений в блоге.Получает комментарии к текущему сообщению или странице и использует блок шаблона комментариев
в качестве контейнера для внутренних блоков.
Внутренние блоки:Аватар,имя автора комментария,дата комментария,ссылка редактирования комментария,содержание комментарияиссылка ответа комментария.
Кроме того, имеется блоккомментариев с разбивкой на страницыи блок комментариевиз формы.Я предлагаю создать область комментариев под содержимым, внутри элемента
, добавив заголовок, а затем используя цикл запроса комментариев по умолчанию.Комментарии
Разметка для блоков комментариев немного более продвинутая, чем та, которую я рассматривал до сих пор, потому что она включает несколько вложенных блоков.
— Если вы не привыкли читать блочную разметку, легко почувствовать себя подавленным и заблудиться, пытаясь найти, где начинается и заканчивается блок.
Я рекомендую начать с добавления блока цикла запроса комментариев в редакторе блоков WordPress, а затем скопировать и вставить код в шаблон в редакторе кода.Позвольте мне провести вас через внутренние блоки по умолчанию:
Во-первых, у вас есть цикл запросов комментариев, который является родительским блоком, и шаблон комментариев:<дел>
- Блок цикла запросов

html внутри, создайте их, прежде чем продолжить.
Но сначала вам нужно добавить элемент 


0 устарела от блока комментариев к сообщениям в пользу нового блока цикла запроса комментариев. С новым блоком у вас гораздо больше контроля над макетом. 
0.
Текущий блок формы комментариев представляет собой единый блок без возможности редактирования полей формы.
html) или тегов (tag.html). Если вы хотите создать шаблон для определенной категории, используйте имя файла
9 , вы, наконец, можете настроить страницу результатов поиска так, чтобы при отсутствии результатов поиска отображалось сообщение вместо пустой страницы. Блок без результатов находится в ранней упрощенной версии, и я надеюсь продолжить работу над его улучшением. Как и шаблон сообщения и комментария, он используется внутри запроса и представляет собой блок-контейнер, в который вы помещаете другие блоки.
Пожалуйста, попробуйте еще раз с другими ключевыми словами.
Затем нажмите значок + Блок Вставка и выполните поиск по фразе «часть шаблона». Щелкните ее, чтобы добавить блок в шаблон.
Дайте здесь вашему новому элементу шаблона описательный заголовок. Затем вы можете добавить блоки в свою часть шаблона на следующем экране. Позже вы сможете использовать эту часть шаблона во всех шаблонах вашего сайта.