SOFT SPRINT

softsprint.net
(en) shop

Cоздание index.php для темы WordPress — часть 2

В первой статье мы узнали, что минимальная тема на WordPress может состоять лишь с двух файлов: index.php, style.css. По факту структура практически любого сайта состоит из:

wordpress structure

  • шапки (header), куда обычно включают логотип, краткое описание, навигацию (меню);
  • основной области (body), где размещена основная информация сайта (текстовая, графическая, посты блогов, страницы, прочее);
  • боковой панели (sidebar) с навигацией сайта — выводом меню страниц сайта, календарём постов, формой поиска, рекламными блоками и т.д.;
  • нижней части сайта или подвала (footer), где размещены условия пользования сайтом, хлебные крошки, счётчики посещений, прочее.

wordpress treeНа рисунке приведён пример наиболее типовой структуры сайта/блога, но в Вашей теме, например, может быть 2 боковых панели (sidebar) и ни одного подвала (footer) – платформа WordPress не имеет требований к какой-либо обязательной структуре сайта.

Файл index.php – как ствол в дереве, на котором держаться ветки в виде файлов: header.php, sidebar.php, footer.php и прочих (если такие предусмотрены в теме).
Рассмотрим пример структуры сайта нашей темы Lightweight на основе файла index.php:

1
2
3
4
<?php get_header(); ?> 
<?php get_template_part('loop'); ?>
<?php get_sidebar(); ?> 	
<?php get_footer(); ?>

Первая строка содержит функцию get_header(), которая подключает файл шаблона шапки сайта (header.php). По умолчанию внутри скобок функции get_header() ничего не указывается (автоматически WordPress подключит файл header.php), но если записать функцию, например, в таком виде:

1
<?php get_header(top) ; ?>

, то будет загружен файл header-top.php

Т.е., параметр в скобках является частью названия файла шапки сайта и дописывается через тире.
Это удобно применять, когда нужно загружать разные шапки сайта, в зависимости от того, на какой странице находится посетитель. Пример:

1
2
3
4
5
6
7
8
9
<?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 будет начинаться тогда так:

1
2
3
4
5
<?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:

1
<?php get_template_part('loop'); ?>

По своей задаче она очень похожа, например, на get_footer() — подключает нужную нам часть темы, выведенную в отдельный файл (в данному случае – loop.php).

Функцию

1
get_template_part()

часто применяют, чтобы подключить хлебные крошки или форму поиска к сайту, навигацию или вывод постов, которые вынесены в отдельный файл. Т.е., данная функция позволяет подключить любой файл php к нашей теме.
В следующих статьях мы рассмотрим содержимое файлов header.php, sidebar.php, loop.php и footer.php, которые мы вызываем в файле index.php нашей темы Lightweight.

Напоминаем — Вы всегда можете заказать у нас сайт на WordPress выгодной стоимости — читать подробнее

CONTACT US
Cookies | Privacy Policy | Terms and ConditionsSoftSprint ©