Разработка Full Site Editing (FSE) темы WordPress

Наша компания занимается разработкой, поддержкой и обслуживанием сайтов любой сложности. От простых одностраничных сайтов до масштабных кластерных систем построенных на микро сервисах. Опыт разработчиков подтвержден сертификатами от вендоров.
Разработка и обслуживание любых видов сайтов:
Информационные сайты или веб-приложения
Сайты визитки, landing page, корпоративные сайты, онлайн каталоги, квиз, промо-сайты, блоги, новостные ресурсы, информационные порталы, форумы, агрегаторы
Сайты или веб-приложения электронной коммерции
Интернет-магазины, B2B-порталы, маркетплейсы, онлайн-обменники, кэшбэк-сайты, биржи, дропшиппинг-платформы, парсеры товаров
Веб-приложения для управления бизнес-процессами
CRM-системы, ERP-системы, корпоративные порталы, системы управления производством, парсеры информации
Сайты или веб-приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, конструкторы сайтов, порталы предоставления электронных услуг, видеохостинги, тематические порталы

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

Предлагаемые услуги
Показано 1 из 1 услугВсе 2065 услуг
Разработка Full Site Editing (FSE) темы WordPress
Средняя
~5 рабочих дней
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1262
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1171
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    874
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1094
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    831
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    851

Разработка Full Site Editing (FSE) темы WordPress

Full Site Editing — архитектура WordPress, при которой весь сайт — шапка, футер, сайдбары, шаблоны страниц — собирается из блоков в визуальном редакторе, а не через PHP-шаблоны. FSE тема избавляет от файлов header.php, footer.php, sidebar.php и заменяет их HTML-файлами с разметкой блоков. Подход кардинально другой по сравнению с классической темой; переход со старой темы на FSE занимает от 5 до 15 рабочих дней в зависимости от сложности дизайна.

Структура FSE темы

wp-content/themes/my-fse-theme/
├── style.css                    # Заголовок темы
├── functions.php                # Минимальный (theme supports, enqueue)
├── theme.json                   # Дизайн-токены и глобальные стили
├── templates/
│   ├── index.html               # Дефолтный шаблон
│   ├── single.html              # Одиночная запись
│   ├── single-project.html      # CPT project
│   ├── archive.html             # Архив
│   ├── page.html                # Страница
│   ├── page-no-title.html       # Кастомный шаблон страницы
│   └── 404.html                 # Страница 404
└── parts/
    ├── header.html              # Шапка
    ├── footer.html              # Футер
    └── sidebar.html             # Сайдбар

Вместо get_header() в шаблоне теперь блок core/template-part:

<!-- wp:template-part {"slug":"header","theme":"my-fse-theme","tagName":"header"} /-->

<!-- wp:group {"tagName":"main","layout":{"type":"constrained"}} -->
<main class="wp-block-group">
  <!-- wp:post-content /-->
</main>
<!-- /wp:group -->

<!-- wp:template-part {"slug":"footer","theme":"my-fse-theme","tagName":"footer"} /-->

theme.json — сердце FSE темы

theme.json определяет дизайн-систему: цвета, типографику, отступы, размеры — всё, что раньше было в CSS:

{
  "$schema": "https://schemas.wp.org/wp/6.5/theme.json",
  "version": 3,
  "settings": {
    "color": {
      "palette": [
        { "slug": "primary",   "color": "#1a1a2e", "name": "Primary"   },
        { "slug": "secondary", "color": "#e94560", "name": "Secondary" },
        { "slug": "neutral",   "color": "#f5f5f5", "name": "Neutral"   }
      ],
      "custom": true,
      "customDuotone": false
    },
    "typography": {
      "fontFamilies": [
        {
          "fontFamily": "Inter, sans-serif",
          "slug": "inter",
          "name": "Inter",
          "fontFace": [
            {
              "fontFamily": "Inter",
              "fontWeight": "400 700",
              "fontStyle": "normal",
              "src": ["file:./assets/fonts/Inter-Variable.woff2"]
            }
          ]
        }
      ],
      "fontSizes": [
        { "slug": "sm",  "size": "0.875rem", "name": "Small"  },
        { "slug": "md",  "size": "1rem",     "name": "Base"   },
        { "slug": "lg",  "size": "1.25rem",  "name": "Large"  },
        { "slug": "xl",  "size": "1.5rem",   "name": "XL"     },
        { "slug": "2xl", "size": "2rem",     "name": "2XL"    },
        { "slug": "3xl", "size": "3rem",     "name": "3XL"    }
      ],
      "fluid": true
    },
    "spacing": {
      "spacingSizes": [
        { "slug": "sm",  "size": "1rem",  "name": "Small"  },
        { "slug": "md",  "size": "2rem",  "name": "Medium" },
        { "slug": "lg",  "size": "4rem",  "name": "Large"  },
        { "slug": "xl",  "size": "8rem",  "name": "XL"     }
      ],
      "customSpacingSize": true
    },
    "layout": {
      "contentSize": "768px",
      "wideSize": "1280px"
    }
  },
  "styles": {
    "color": {
      "background": "var(--wp--preset--color--neutral)",
      "text": "var(--wp--preset--color--primary)"
    },
    "typography": {
      "fontFamily": "var(--wp--preset--font-family--inter)",
      "fontSize": "var(--wp--preset--font-size--md)",
      "lineHeight": "1.6"
    },
    "elements": {
      "h1": { "typography": { "fontSize": "var(--wp--preset--font-size--3xl)", "fontWeight": "700" } },
      "h2": { "typography": { "fontSize": "var(--wp--preset--font-size--2xl)", "fontWeight": "600" } },
      "link": {
        "color": { "text": "var(--wp--preset--color--secondary)" },
        ":hover": { "color": { "text": "var(--wp--preset--color--primary)" } }
      }
    }
  }
}

Все значения из theme.json становятся CSS-переменными вида --wp--preset--color--primary. Это и есть «дизайн-токены» для блочного редактора.

Шаблон архива кастомного типа записей

<!-- wp:template-part {"slug":"header","tagName":"header"} /-->

<!-- wp:group {"tagName":"main","style":{"spacing":{"padding":{"top":"var:preset|spacing|lg","bottom":"var:preset|spacing|lg"}}}} -->
<main class="wp-block-group">

  <!-- wp:query {"queryId":1,"query":{"postType":"project","perPage":12,"inherit":true}} -->
  <div class="wp-block-query">

    <!-- wp:post-template {"layout":{"type":"grid","columnCount":3}} -->
      <!-- wp:post-featured-image {"isLink":true,"aspectRatio":"4/3"} /-->
      <!-- wp:post-title {"isLink":true,"level":3} /-->
      <!-- wp:post-excerpt {"moreText":"Подробнее"} /-->
    <!-- /wp:post-template -->

    <!-- wp:query-pagination -->
      <!-- wp:query-pagination-previous /-->
      <!-- wp:query-pagination-numbers /-->
      <!-- wp:query-pagination-next /-->
    <!-- /wp:query-pagination -->

    <!-- wp:query-no-results -->
      <!-- wp:paragraph -->
      <p>Проекты не найдены.</p>
      <!-- /wp:paragraph -->
    <!-- /wp:query-no-results -->

  </div>
  <!-- /wp:query -->

</main>
<!-- /wp:group -->

<!-- wp:template-part {"slug":"footer","tagName":"footer"} /-->

Кастомные блок-паттерны

Паттерны — готовые комбинации блоков, которые редактор вставляет одним кликом:

register_block_pattern('my-theme/hero-section', [
    'title'       => 'Hero секция',
    'description' => 'Полноширинный баннер с заголовком и кнопкой',
    'categories'  => ['featured'],
    'content'     => '<!-- wp:cover {"url":"' . get_template_directory_uri() . '/assets/img/hero.jpg","dimRatio":50,"align":"full"} -->
<div class="wp-block-cover alignfull">
  <!-- wp:heading {"level":1,"textColor":"white"} --><h1 class="wp-block-heading has-white-color">Заголовок сайта</h1><!-- /wp:heading -->
  <!-- wp:buttons {"layout":{"type":"flex","justifyContent":"center"}} -->
    <div class="wp-block-buttons">
      <!-- wp:button {"backgroundColor":"secondary"} --><div class="wp-block-button"><a class="wp-block-button__link has-secondary-background-color">Узнать больше</a></div><!-- /wp:button -->
    </div>
  <!-- /wp:buttons -->
</div>
<!-- /wp:cover -->',
]);

Отключение ненужного в редакторе

FSE даёт редактору слишком много свободы — он может сломать верстку. Ограничения через theme.json:

"settings": {
  "color": {
    "custom": false,
    "customGradient": false
  },
  "typography": {
    "customFontSize": false,
    "dropCap": false
  }
}

И через PHP — разрешаем только нужные блоки:

add_filter('allowed_block_types_all', function (array|bool $allowed, WP_Block_Editor_Context $context): array {
    return [
        'core/paragraph', 'core/heading', 'core/image', 'core/list',
        'core/quote', 'core/table', 'core/buttons', 'core/button',
        'core/group', 'core/columns', 'core/column', 'core/spacer',
        'my-plugin/project-card', 'my-plugin/cta-section',
    ];
}, 10, 2);

Различия от классической темы

Аспект Классическая тема FSE тема
Шапка/футер PHP-файлы HTML-шаблоны в /parts
Редактирование шапки Только через код В Site Editor визуально
Глобальные стили CSS theme.json
Шаблоны PHP-иерархия HTML в /templates
Кастомные функции Неограниченно Только через плагин

Типовые сроки

Минимальная FSE тема (5–7 шаблонов, тема без дизайн-системы) — 3–5 дней. Тема с полноценной дизайн-системой через theme.json, паттернами и ограничениями редактора — 8–12 дней. Портирование сложной классической темы на FSE с сохранением всего функционала — от 15 дней.