Cоздание index.php для темы WordPress – часть 2
В первой статье мы узнали, что минимальная тема на WordPress может состоять лишь с двух файлов: index.php, style.css. По факту структура практически любого сайта состоит из:
- шапки (header), куда обычно включают логотип, краткое описание, навигацию (меню);
- основной области (body), где размещена основная информация сайта (текстовая, графическая, посты блогов, страницы, прочее);
- боковой панели (sidebar) с навигацией сайта – выводом меню страниц сайта, календарём постов, формой поиска, рекламными блоками и т.д.;
- нижней части сайта или подвала (footer), где размещены условия пользования сайтом, хлебные крошки, счётчики посещений, прочее.
На рисунке приведён пример наиболее типовой структуры сайта/блога, но в Вашей теме, например, может быть 2 боковых панели (sidebar) и ни одного подвала (footer) – платформа WordPress не имеет требований к какой-либо обязательной структуре сайта.
Файл index.php – как ствол в дереве, на котором держаться ветки в виде файлов: header.php, sidebar.php, footer.php и прочих (если такие предусмотрены в теме).
Рассмотрим пример структуры сайта нашей темы Lightweight на основе файла index.php:
<?php get_header(); ?>
<?php get_template_part('loop'); ?>
<?php get_sidebar(); ?>
<?php get_footer(); ?>
Первая строка содержит функцию get_header(), которая подключает файл шаблона шапки сайта (header.php). По умолчанию внутри скобок функции get_header() ничего не указывается (автоматически WordPress подключит файл header.php), но если записать функцию, например, в таком виде:
<?php get_header(top) ; ?>
, то будет загружен файл header-top.php
Т.е., параметр в скобках является частью названия файла шапки сайта и дописывается через тире.
Это удобно применять, когда нужно загружать разные шапки сайта, в зависимости от того, на какой странице находится посетитель. Пример:
<?php
if ( is_home() ) :
get_header('home');
elseif ( is_page('korzina') ) :
get_header('korzina');
else :
get_header();
endif;
?>
Эту конструкцию следует вставить в файл index.php вместо первой строки
В таком случае WordPress сделает следующее:
- проверит, если юзер находится на главной странице сайта, то шапка будет загружена с файла header-home.php;
- если юзер находится на странице korzina, то шапка загрузится с файла header-korzina.php;
- для всех остальных страниц будет загружаться шапка с файла header.php
Вообще, есть очень много возможных вариантов для определения, где находится юзер, например:
- is_404 – для страниц, которые не найдены (ошибка 404);
- is_single – для постов (записей);
- is_search – для страницы с результатами поиска
Вернёмся к нашему index.php: предпоследняя и последняя строки файла index.php отвечают за подключение файлов боковой панели (sidebar) и нижней части сайта (footer).
Логика подключения боковой панели и нижней части сайта аналогичная подключению шапки сайта:
- get_sidebar() – подключает файл sidebar.php
- get_footer() – подключает файл footer.php
Повторимся: WordPress НЕ ИМЕЕТ каких-либо требований к структуре сайта, поэтому Вы можете запросто поставить, например, две боковых панели сразу после шапки сайта. Файл index.php будет начинаться тогда так:
<?php get_header(); ?>
<?php get_sidebar('left'); ?>
<?php get_sidebar('right'); ?>
<?php get_template_part('loop'); ?>
<?php get_footer(); ?>
где: вторая и третья строчки подключат левый и правый сайдбар, соответственно: sidebar-left.php и sidebar-right.php.
Естественно, все эти файлы, которые перечислены выше, например, header-korzina.php, sidebar-left.php и другие, ДОЛЖНЫ присутствовать в папке Вашей темы!
И вот мы подошли к рассмотрению последней функции в файле index.php:
<?php get_template_part('loop'); ?>
По своей задаче она очень похожа, например, на get_footer() – подключает нужную нам часть темы, выведенную в отдельный файл (в данному случае – loop.php).
Функцию
get_template_part()
часто применяют, чтобы подключить хлебные крошки или форму поиска к сайту, навигацию или вывод постов, которые вынесены в отдельный файл. Т.е., данная функция позволяет подключить любой файл php к нашей теме.
В следующих статьях мы рассмотрим содержимое файлов header.php, sidebar.php, loop.php и footer.php, которые мы вызываем в файле index.php нашей темы Lightweight.
Напоминаем – Вы всегда можете заказать у нас сайт на WordPress выгодной стоимости – читать подробнее