3. Структура темы
Тема WordPress определяет, как контент будет отображаться пользователю. Понимание иерархии шаблонов — ключ к созданию гибких и производительных сайтов.
Минимальный набор файлов
Заголовок раздела «Минимальный набор файлов»Для того чтобы WordPress распознал папку как тему, в ней должны быть как минимум два файла:
style.css— мета-информация о теме и стили.index.php— основной шаблон вывода.
style.css
Заголовок раздела «style.css»В начале этого файла обязательно должен быть заголовок в комментариях:
/*Theme Name: My Custom ThemeAuthor: YashaVersion: 1.0Description: Обучающая тема для курса WordPress.*/Иерархия шаблонов (Template Hierarchy)
Заголовок раздела «Иерархия шаблонов (Template Hierarchy)»WordPress ищет нужный файл шаблона в зависимости от того, какую страницу запросил пользователь. Если специфичный файл не найден, система переходит к более общему.
graph LR Request[Запрос пользователя] --> Archive[Архив / Категория] Request --> Single[Одиночный пост] Request --> Page[Страница]
Archive --> category_id[category-12.php] category_id --> category[category.php] category --> archive_general[archive.php]
Single --> single_post_type[single-post.php] single_post_type --> single_general[single.php]
Page --> page_slug[page-about.php] page_slug --> page_general[page.php]
archive_general --> index[index.php] single_general --> index page_general --> indexОсновные файлы темы
Заголовок раздела «Основные файлы темы»functions.php— “мозг” темы. Здесь подключаются скрипты, стили и регистрируются возможности темы.header.php— верхняя часть сайта (тегиhead, навигация).footer.php— нижняя часть сайта (подвал, скрипты).sidebar.php— боковая панель.
Подключение стилей и скриптов
Заголовок раздела «Подключение стилей и скриптов»Правильный способ подключения ресурсов в WordPress — использование хука wp_enqueue_scripts в файле functions.php.
<?phpfunction my_theme_scripts() { // Подключение стилей wp_enqueue_style('main-styles', get_stylesheet_uri());
// Подключение кастомного JS wp_enqueue_script('custom-js', get_template_directory_uri() . '/js/main.js', array(), '1.0', true);}
add_action('wp_enqueue_scripts', 'my_theme_scripts');Использование функций get_header() и get_footer() позволяет собирать страницу из этих фрагментов.
Интерактивный пример
Заголовок раздела «Интерактивный пример»Файловая структура WordPress-темы: