Пример дочерней темы «Пекарня»

Рабочая тема к руководству «Темы». Она берёт всё у стандартной темы «Старт» и меняет только нужное:

Что Где
описание темы и родительская тема theme.json ("parent": "starter")
цвета и шрифты поверх «Старта» assets/css/style.css — подключается после стилей «Старта»
свой блок в боковой колонке через событие темы functions.php → starter_sidebar, шаблон partials/hours.blade.php
фильтр: длина отрывков functions.php → excerpt_length
свой шаблон страницы 404 404.blade.php

Как попробовать

Скопируйте папку pekarnya в themes/ (или запакуйте в zip и загрузите в «Внешний вид → Темы → Добавить тему») и активируйте тему «Пекарня». Тема «Старт» должна оставаться установленной — дочерняя берёт у неё шаблоны.

Файлы примера

theme.json
{
    "name": "Пекарня",
    "description": "Пример дочерней темы из документации: тёплые цвета, свои часы работы в боковой колонке и своя страница 404.",
    "version": "1.0.0",
    "author": "CMS ARGELIT",
    "parent": "starter",
    "requires_cms": "0.13"
}
functions.php
<?php

/*
 * functions.php темы «Пекарня». Подключается после functions.php «Старта».
 * Функции здесь не объявляем (файл может подключаться повторно) — только подписки на события и фильтры.
 */

// «Часы работы» внизу боковой колонки: «Старт» вызывает здесь событие «starter_sidebar».
add_action('starter_sidebar', function () {
    echo view('theme::partials.hours', [
        'hours' => ['Пн–Пт' => '7:00–20:00', 'Сб–Вс' => '8:00–18:00'],
    ])->render();
});

// Короче отрывки записей в ленте: 25 слов вместо стандартных.
add_filter('excerpt_length', fn () => 25);
404.blade.php
{{-- Своя страница «не найдено». Остальные шаблоны тема берёт у «Старта». --}}
@extends('theme::layout')

@section('content')
    <div class="container container--narrow">
        <main class="site-main error-404">
            <p class="error-404__code" aria-hidden="true">404</p>
            <h1 class="page-title">Эту булочку уже разобрали</h1>
            <p>Страницы с таким адресом нет. Загляните на главную — там свежая выпечка.</p>

            <p><a href="{{ home_url() }}" class="button">На главную</a></p>
        </main>
    </div>
@endsection
assets/css/style.css
/*
 * Тема «Пекарня» — дочерняя тема «Старта».
 * Этот файл подключается ПОСЛЕ стилей «Старта», поэтому достаточно поменять переменные и пару правил.
 */

:root {
    --accent: #b45309;
    --accent-hover: #92400e;
    --accent-soft: #fef3c7;
    --surface: #fffbeb;
    --radius: 18px;
}

h1,
h2,
h3,
.site-title {
    font-family: Georgia, "Times New Roman", serif;
}

.bakery-hours {
    padding: 16px 20px;
    border-radius: var(--radius);
    background: var(--accent-soft);
}

.bakery-hours dl {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 4px 12px;
    margin: 0;
}

.bakery-hours dd {
    margin: 0;
}
partials/hours.blade.php
{{-- Часы работы в боковой колонке (выводится из functions.php). Переменная: $hours — «дни => время». --}}
<section class="widget bakery-hours">
    <h2 class="widget__title">Часы работы</h2>
    <dl>
        @foreach ($hours as $days => $time)
            <dt>{{ $days }}</dt>
            <dd>{{ $time }}</dd>
        @endforeach
    </dl>
</section>