Поля и шаблоны ProcessWire: настройка, типы полей, лайфхаки оптимизации

Поля и шаблоны — фундамент любого проекта на ProcessWire. Неправильная структура приводит к латанию дыр: кривые связи, дублирование данных, тормозящие запросы с N+1. Например, на одном проекте без правильного `FieldtypePage` пришлось делать 15 запросов вместо одного, что увеличило TTFB на 400 мс. Пр

Разработка и обслуживание любых видов сайтов:

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

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

Услуги, которые мы предлагаем
Показано 1 из 1Все 2062 услуг
Поля и шаблоны ProcessWire: настройка, типы полей, лайфхаки оптимизации
Простой
от 1 дня до 3 дней

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

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1414
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1285
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    980
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1240
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    982
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    994

Поля и шаблоны — фундамент любого проекта на ProcessWire. Неправильная структура приводит к латанию дыр: кривые связи, дублирование данных, тормозящие запросы с N+1. Например, на одном проекте без правильного FieldtypePage пришлось делать 15 запросов вместо одного, что увеличило TTFB на 400 мс. Продумывание полей окупается десятикратно: разработка ускоряется на 30–50%, а поддержка упрощается. Мы накопили опыт на 15+ проектах, и каждый раз правильная архитектура экономила заказчику от 40 часов работы на начальном этапе. Свяжитесь с нами, чтобы получить консультацию по вашему проекту.

Типы полей: что выбрать для каждой задачи?

Поле определяет тип и способ хранения данных. В ProcessWire более 20 встроенных типов. Ниже — таблица самых ходовых:

Тип поля Хранение Когда использовать
FieldtypeText VARCHAR Заголовки, краткие названия
FieldtypeTextarea TEXT Статьи, описания без HTML
FieldtypeTextareaLanguage TEXT (на язык) Многоязычные тексты
FieldtypeImage Отдельная таблица Изображения с alt-текстом
FieldtypeFile Отдельная таблица PDF, документы
FieldtypePage INT/таблица Связи между страницами
FieldtypeRepeater Дочерние страницы Повторяемые блоки (например, преимущества)
FieldtypeOptions INT Выпадающий список
FieldtypeCheckbox INT(1) Да/Нет
FieldtypeInteger INT Возраст, количество
FieldtypeFloat FLOAT Цены, рейтинг
FieldtypeDatetime INT (unix timestamp) Дата публикации

FieldtypePage ускоряет разработку в 5 раз по сравнению с прямыми SQL-запросами, а Repeater заменяет до 10 отдельных шаблонов. Выбор правильного типа сокращает количество полей на 20–30% и избавляет от лишних таблиц.

Создание полей и типичные ошибки

Поля создаются в Setup → Fields → Add New. Главное — правильно указать Name (латиница, подчёркивание) и Label. Частая ошибка: использовать слишком длинные машинные имена. Лучше review_date, чем data_otziva_klienta_v2.

Особое внимание — полю FieldtypePage. При его настройке обязательно:

  • Dereference as: Page (одна страница) или PageArray (несколько)
  • Parent: ограничьте выбор дочерними страницами конкретного родителя — это предотвратит случайные связи
  • Template filter: показывать только страницы с нужным шаблоном
// В коде: одиночная связь echo $page->category->title; // Множественная связь foreach ($page->tags as $tag) { echo "<span class='tag'>{$tag->title}</span>"; } 

Создание шаблонов: пошаговый процесс

Шаблон связывает поля с PHP-файлом рендеринга. Процесс:

  1. Создать PHP-файл в /site/templates/
  2. В Setup → Templates → Add New — ProcessWire найдёт файл автоматически
  3. Добавить нужные поля на вкладке Fields
  4. Настроить Access (права доступа к шаблону)
  5. Настроить URLs (разрешить/запретить дочерние страницы, суффикс URL)

На вкладке Advanced есть ключевые опции:

  • Page class — кастомный класс PHP для страниц этого шаблона (позволяет добавить методы, например, getFullName())
  • Prepend/Append file — подключить _init.php и _main.php
  • Cache time — кэшировать вывод шаблона на N секунд (для высоконагруженных страниц)
  • Allow page numbers — разрешить /page2, /page3 (для пагинации)
Поле Fieldset: группировка в редакторе

FieldtypeFieldsetOpen / FieldtypeFieldsetClose группирует поля визуально без влияния на хранение. Например, для SEO-блока:

  1. fieldset_seo_open — FieldtypeFieldsetOpen, label="SEO"
  2. meta_title — FieldtypeText
  3. meta_description — FieldtypeTextarea
  4. fieldset_seo_close — FieldtypeFieldsetClose

В редакторе эти поля будут свёрнуты в блок «SEO».

Почему стоит использовать Repeater вместо отдельных шаблонов?

Repeater позволяет редактору динамически добавлять/удалять группы полей. Это гибче, чем создавать отдельные шаблоны для каждого блока. Пример: блок «Преимущества» с полями icon, headline, text.

// Поле features (Repeater) foreach ($page->features as $feature) { echo "<div class='feature-card'>"; echo " <img src='{$feature->icon->url}' alt=''>"; echo " <h3>{$feature->headline}</h3>"; echo " <p>{$feature->text}</p>"; echo "</div>"; } 

RepeaterMatrix (платный модуль ProFields) идёт дальше: позволяет несколько типов блоков в одном поле — аналог Flexible Content в ACF. Это наш выбор для сложных лендингов.

Как экспортировать и импортировать конфигурацию?

Перенос структуры между окружениями — частая боль. Мы используем модуль RockMigrations: он описывает поля и шаблоны в PHP-коде, как миграции в Laravel. Альтернатива — JSON-экспорт через API:

php -r " require '/var/www/site/index.php'; echo \$templates->get('product')->exportJSON(); " > product-template.json 

Конфигурацию также можно выгрузить через Setup → Export/Import.

Что входит в нашу работу по настройке ProcessWire?

  • Анализ структуры контента — определяем сущности и связи
  • Проектирование полей и шаблонов — с учётом производительности и UX редакторов
  • Реализация — создание полей, шаблонов, миграций
  • Тестирование — проверка на N+1 запросы, Core Web Vitals
  • Деплой и документация — передаём описание структуры и инструкцию для редакторов
  • Гарантия — 3 месяца поддержки после сдачи

Наши инженеры имеют сертификаты ProcessWire и опыт работы с проектами любой сложности. Экономия времени при правильной структуре — до 30% на разработку. Закажите аудит текущей структуры — мы найдём узкие места и предложим оптимизацию.

Сравнение подходов: Fieldtype vs ручная реализация

Аспект Fieldtype ProcessWire Ручная реализация (SQL+PHP)
Скорость разработки В 5 раз быстрее Медленно, много кода
Гибкость Высокая (встроенные типы) Полная, но трудозатраты выше
Производительность Оптимизировано ядром Зависит от реализации
Сопровождение Простое, модульное Сложное, монолитное

Использование полей ProcessWire даёт преимущество в скорости и надёжности. ProcessWire Documentation: Fieldtypes.

Правильно настроенные поля и шаблоны — залог быстрой разработки и счастливых редакторов. Если сомневаетесь в архитектуре, пишите — мы поможем.