Налаштування Entry Types і Sections у Craft CMS: архітектура контенту

Ми налаштовували архітектуру контенту для десятків проектів на Craft CMS і знаємо, як уникнути переробок. Неправильний вибір типу Section або Entry Type призводить до того, що через місяць доводиться переробляти структуру URL, шаблони та міграції. Наприклад, якщо спочатку обрали Channel для каталогу

Розробка та обслуговування будь-яких видів сайтів:

Інформаційні сайти або веб-програми
Сайти візитки, landing page, корпоративні сайти, онлайн каталоги, квіз, промо-сайти, блоги, ресурси новин, інформаційні портали, форуми, агрегатори
Сайти або веб-програми електронної комерції
Інтернет-магазини, B2B-портали, маркетплейси, онлайн-обмінники, кешбек-сайти, біржі, дропшиппінг-платформи, парсери товарів
Веб-програми для управління бізнес-процесами
CRM-системи, ERP-системи, корпоративні портали, системи управління виробництвом, парсери інформації
Сайти або веб-програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, конструктори сайтів, портали надання електронних послуг, відеохостинги, тематичні портали

Це лише деякі з технічних типів сайтів, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 2062 послуг
Налаштування Entry Types і Sections у Craft CMS: архітектура контенту
Простий
від 1 дня до 3 днів

Наші компетенції:

Часті запитання

Останні роботи

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1467
  • Розробка веб-додатків для компанії FEEDME
    Розробка веб-додатків для компанії FEEDME
    1317
  • Розробка веб-сайту для компанії БЕЛФІНГРУП
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    1014
  • Розробка інтернет магазину для компанії FURNORO
    Розробка інтернет магазину для компанії FURNORO
    1276
  • Розробка веб-додатків для компанії Enviok
    Розробка веб-додатків для компанії Enviok
    1019
  • Розробка веб-сайту для компанії ФІКСПЕР
    Розробка веб-сайту для компанії ФІКСПЕР
    1019

Ми налаштовували архітектуру контенту для десятків проектів на Craft CMS і знаємо, як уникнути переробок. Неправильний вибір типу Section або Entry Type призводить до того, що через місяць доводиться переробляти структуру URL, шаблони та міграції. Наприклад, якщо спочатку обрали Channel для каталогу товарів, а потім знадобилася ієрархія (категорії глибиною 3 рівні), доведеться міняти тип на Structure, переносити всі записи, налаштовувати редиректи зі старих URL на нові. Це години роботи та ризики для SEO. Розуміння різниці між типами Sections скорочує час проектування та спрощує підтримку.

Зверніться до нас — ми гарантуємо правильну конфігурацію з урахуванням усіх нюансів вашого проекту.

Типи Sections

Тип Section Характеристика Приклад використання
Channel Колекція записів без ієрархії Блог, новини, відгуки
Structure Ієрархічні сторінки, ручне сортування Документація, каталог з підкатегоріями
Single Один унікальний запис, без slug Homepage, About, Contact

Channel — колекція записів без ієрархії. Блог, новини, товари, вакансії. URL будується як /blog/{slug}. Ідеальний для стрічки однотипного контенту. Всередині можна використовувати різні Entry Types — наприклад, для статей та подкастів.

Structure — ієрархічні сторінки з можливістю вкладеності та ручного сортування. Документація, каталог з підкатегоріями. URL: /services/web-development/landing-pages. Structure краще Channel, коли потрібна вкладеність — наприклад, для каталогу товарів з підкатегоріями глибиною до 3 рівнів. При цьому запити до дерева можуть стати вузьким місцем — використовуйте кешування або level() у Twig для обмеження вибірки.

Single — один унікальний запис. Homepage, About, Contact. Немає slug, немає архіву. Використовується для статичних сторінок. Зверніть увагу: якщо знадобиться кілька версій (наприклад, сторінка для кожного сайту в мультисайтовому режимі), використовуйте Section типу Structure з одним записом — це дасть більше гнучкості.

Як вибрати тип Section?

Вибір залежить від характеру контенту. Для плоских колекцій використовуйте Channel, для ієрархій — Structure, для унікальних сторінок — Single. Якщо сумніваєтеся, почніть з Channel — це найгнучкіший варіант, який легко розширити при необхідності. Але пам'ятайте: міграція з Channel на Structure трудомістка, тому краще одразу продумати можливе ускладнення структури.

Що таке Entry Types і як їх налаштовувати?

Кожен Section може мати кілька Entry Types з різними наборами полів. Це дозволяє гнучко керувати контентом різних форматів в одній секції. Приклад для Section Blog:

Section: blog (Channel) ├── Entry Type: article │ └── Fields: body (Matrix), readingTime (calculated), podcast (false) ├── Entry Type: podcast │ └── Fields: audioFile (Asset), transcript (Redactor), duration (Number) └── Entry Type: video └── Fields: videoUrl (URL), thumbnail (Asset), youtubeId (computed) 

У Twig розділяємо відображення за типом:

{% switch entry.type.handle %} {% case 'article' %} {% include '_blog/_article' %} {% case 'podcast' %} {% include '_blog/_podcast' %} {% case 'video' %} {% include '_blog/_video' %} {% endswitch %} 

Як налаштувати Project Config для секцій?

Використовуйте YAML-файли для конфігурації секцій — це спрощує розгортання та контроль версій. Зверніться до офіційної документації Project Config. Приклад для блогу:

# config/project/sections/blog.yaml name: Blog handle: blog type: channel enableVersioning: true defaultPlacement: end propagationMethod: all siteSettings: default: hasUrls: true uriFormat: 'blog/{slug}' template: blog/_entry enabledByDefault: true entryTypes: article: name: Article handle: article hasTitleField: true titleTranslationMethod: site fieldLayout: - type: craft\fieldlayoutelements\TitleField - type: craft\fieldlayoutelements\CustomField fieldUid: [uid-of-body-field] - type: craft\fieldlayoutelements\CustomField fieldUid: [uid-of-categories-field] 

Як налаштувати Structure з вкладеністю?

Для Structure вкажіть maxLevels, щоб обмежити глибину. Наприклад, для трирівневого каталогу:

Section: services (Structure) ├── maxLevels: 3 ├── enableVersioning: true └── defaultSort: structure (ручне сортування в дереві) 

Запит дочірніх елементів:

{# Отримати всіх нащадків поточної сторінки #} {% set children = craft.entries() .section('services') .descendantOf(entry) .level(entry.level + 1) .orderBy('lft asc') .all() %} 

Як налаштувати переклади для секцій?

При мультисайтовості важливо правильно налаштувати translationMethod:

Метод Опис Приклад
none Єдине значення для всіх сайтів Назва бренду
site Своє значення для кожного сайту Назва товару
language Своє значення для кожної мови Текст мовою
siteGroup Своє значення для групи сайтів Регіональні налаштування

Вибір методу залежить від сценарію. Наприклад, для поля "назва товару" використовуйте site, якщо товар локалізовано, або none, якщо назва загальна для всіх мов.

Практичний прийом: кешування структури Щоб уникнути N+1 запитів при рендерингу дерева, використовуйте {% cache %} або попереднє завантаження записів за допомогою with(). Для великих каталогів (1000+ записів) розгляньте Elasticsearch або Meilisearch для повнотекстового пошуку.

Чому варто замовити налаштування секцій у нас?

Наш досвід — 5+ років розробки на Craft CMS, понад 50 успішних проектів. Ми використовуємо перевірені конфігурації, гарантуємо стабільність та продуктивність. Налаштування 5–8 секцій з Entry Types займає 1–2 дні. Для комплексної архітектури контенту зв'яжіться з нами — ми оцінимо ваш проект за 1 день.

Що входить у налаштування?

  • Розробка архітектури Sections та Entry Types
  • Конфігурація Project Config (YAML)
  • Налаштування полів та перекладів
  • Створення базових шаблонів відображення
  • Документація зі структури контенту
  • Підтримка після запуску

Отримайте консультацію з вашого проекту — ми підберемо оптимальну архітектуру.