← Все ТЗ

🧩 Block-toggle архитектура страниц

Менеджер включает блоки галочками в админке. Если контента нет — блок скрыт
📅 24.04.2026 🏗 WP + Bricks + ACF Pro 📐 Стандарт для всех 6 сайтов портфеля

Содержание

  1. Идея и мотив
  2. Ключевой принцип
  3. UI админки
  4. Список блоков по типам страниц
  5. Матрица блоков × страны
  6. Техническая реализация
  7. Преимущества
  8. Roadmap внедрения

1 Идея и мотив

Правило пользователя (24.04.2026):
«Блочно — менеджер ставит галочку показывать вывод на страницу, Погода она появляется и тп, другие доп блоки. Сам блок зашит в админке, видео появилось — поставил галочку — оно на странице.»

Каждая посадочная (country, hotel, brand, niche) состоит из двух частей:

Менеджер в админке видит чекбоксы и настраивает каждую страницу индивидуально без программиста.

2 Ключевой принцип

Нет контента → блок не рендерится.
Не «Coming soon», не «В разработке», не пустая заглушка. Просто отсутствие блока в HTML.

Почему это важно:

3 UI админки (мок)

┌─ Страна: ТУРЦИЯ ─────────────────────────────────┐ │ │ │ Обязательные (всегда): │ │ 🔒 Hero + H1 │ │ 🔒 BLUF — 4 факта │ │ 🔒 Форма поиска │ │ 🔒 Sticky TOC │ │ │ │ Опциональные базовые: │ │ ☑ Популярные курорты (12 карточек) │ │ ☑ Туры из вашего города (15 городов) │ │ ☑ Почему эта страна (6 преимуществ) │ │ ☑ Погода по месяцам (таблица 10 мес) │ │ ☑ Цены по месяцам (таблица 9 мес) │ │ ☑ Достопримечательности (10 карточек) │ │ ☑ Лучшие отели (8 категорий) │ │ ☑ Виза · перелёт · валюта (4 карточки) │ │ ☑ Горящие туры (виджет Tourvisor) │ │ ☑ FAQ (12 вопросов) │ │ ☑ Блог (4 статьи) │ │ ☑ Другие страны (8 стран) │ │ │ │ Опциональные дополнительные: │ │ ☐ Видео-обзор [URL: ________] │ │ ☐ Аудио-версия [mp3: upload] │ │ ☐ Интерактивная карта │ │ ☐ Свадебные туры │ │ ☐ Горнолыжные курорты │ │ ☐ SPA / термальные источники │ │ ☐ Гастрономические туры │ │ ☐ Яхтенные туры │ │ ☐ Дайвинг │ │ ☐ Шопинг-туры │ │ ☐ Паломнические туры │ │ ☐ Отзывы клиентов (модерация) │ │ ☐ Инфографика (SVG upload) │ │ ☐ Промо-баннер кампании (CPT → campaign) │ │ ☐ Сравнение со странами (выбор стран) │ │ │ │ [Сохранить] [Предпросмотр] │ └──────────────────────────────────────────────────┘

4 Список блоков по типам страниц

4.1 Country landing (/turkey/, /maldives/, /uae/)

БлокОбязательныйDefaultНужен контент?
Hero + H1Да
BLUF — 4 фактаДа
Форма поискаДа
Sticky TOCДа
Популярные курортыНет
Туры из вашего городаНет
Почему эта странаНет
Погода по месяцамНет
Цены по месяцамНет
ДостопримечательностиНет
Отели по категориямНет
Виза · перелётНет
FAQНет
Блог — гидыНет
Другие страныНет
Видео-обзорНетYouTube URL
Аудио-версияНетmp3 файл
Карта интерактивнаяНет
Свадебные турыНет
Горнолыжные курортыНет
SPA · термальныеНет
ГастрономияНет
ДайвингНет
Яхтенные турыНет
Шопинг-турыНет
Паломнические турыНет
Отзывы клиентовНетсписок отзывов
ИнфографикаНетSVG файл
Промо-баннерНетCPT campaign

4.2 Hotel page (/turkey/antalya/belek/rixos-premium-belek-55750/)

БлокОбязательныйDefault
Hero + имя отеля + звёзды + рейтингДа
BLUF «Главное» (8 фактов)Да
Виджет бронирования (партнёр-поставщик)Да
Галерея фотоДа
Описание отеляНет
ПляжНет
НомераНет
ПитаниеНет
Для семейНет
SPA / фитнес / анимацияНет
Что рядомНет
Погода месяцевНет
FAQНет
Cross-brand (другие отели сети)Нет
Похожие отелиНет
Видео-обзор отеляНет
Отзывы гостей (агрегация)Нет
Live-трансляция / веб-камераНет
Экскурсии от отеляНет

5 Матрица блоков × страны

Каждая страна = уникальный набор галочек. Шаблон один — конфигурации разные.
БлокТурцияМальдивыОАЭИндияТаиланд
Курорты✓ 12— (атоллы)✓ 5✓ 8✓ 6
Из города✓ 15✓ 8✓ 10✓ 5✓ 8
Погода
Цены
Достопримечательности✓ 10✓ 8✓ 12✓ 10
Горнолыжка✓ 4✓ Гульмарг
Свадебные✓ №1
Медовый месяц
Аюрведа✓ 12
SPA / термальные
Гастрономия
Дайвинг✓ топ✓ топ
Яхтинг
Шопинг-туры✓ Стамбул✓ Дубай✓ Бангкок
Паломничество
Видео— пока
Аудио

6 Техническая реализация

6.1 Регистрация блоков — functions.php

function get_country_blocks() {
    return [
        // Обязательные
        'hero'      => ['title' => 'Hero + H1',      'required' => true],
        'bluf'      => ['title' => 'BLUF 4 факта',    'required' => true],
        'search'    => ['title' => 'Форма поиска',    'required' => true],
        'toc'       => ['title' => 'Sticky TOC',      'required' => true],

        // Опциональные базовые (default: on)
        'resorts'         => ['title' => 'Курорты',             'default' => true],
        'from_city'       => ['title' => 'Из вашего города',    'default' => true],
        'why'             => ['title' => 'Почему эта страна',   'default' => true],
        'weather'         => ['title' => 'Погода по месяцам',   'default' => true],
        'prices'          => ['title' => 'Цены по месяцам',     'default' => true],
        'attractions'     => ['title' => 'Достопримечательности','default' => true],
        'hotel_categories'=> ['title' => 'Отели по категориям', 'default' => true],
        'practical'       => ['title' => 'Виза · перелёт',      'default' => true],
        'faq'             => ['title' => 'FAQ',                  'default' => true],
        'blog'            => ['title' => 'Блог',                 'default' => true],
        'cross_countries' => ['title' => 'Другие страны',        'default' => true],

        // Опциональные дополнительные (default: off, нужен контент)
        'video'      => ['title' => 'Видео-обзор', 'default' => false, 'needs' => 'video_url'],
        'audio'      => ['title' => 'Аудио-версия', 'default' => false, 'needs' => 'audio_mp3'],
        'wedding'    => ['title' => 'Свадебные туры', 'default' => false],
        'skiing'     => ['title' => 'Горнолыжные курорты', 'default' => false],
        'spa'        => ['title' => 'SPA-туризм', 'default' => false],
        'gastro'     => ['title' => 'Гастрономические туры', 'default' => false],
        'diving'     => ['title' => 'Дайвинг', 'default' => false],
        'yacht'      => ['title' => 'Яхтенные туры', 'default' => false],
        'shopping'   => ['title' => 'Шопинг-туры', 'default' => false],
        'religious'  => ['title' => 'Паломнические туры', 'default' => false],
        'reviews'    => ['title' => 'Отзывы клиентов', 'default' => false, 'needs' => 'reviews_list'],
        'infographic'=> ['title' => 'Инфографика', 'default' => false, 'needs' => 'svg_upload'],
        'promo'      => ['title' => 'Промо-баннер', 'default' => false, 'needs' => 'campaign_cpt'],
    ];
}

6.2 Рендер в шаблоне

<?php
$blocks = get_country_blocks();
foreach ($blocks as $slug => $block) {
    // required — всегда рендерим
    if (!empty($block['required'])) {
        include "blocks/{$slug}.php";
        continue;
    }
    // toggle off — пропускаем
    if (!get_field("show_{$slug}")) continue;
    // нужен контент, но его нет — пропускаем
    if (!empty($block['needs']) && !get_field($block['needs'])) continue;
    // рендерим
    include "blocks/{$slug}.php";
}
?>

6.3 ACF Field Group

Создаём ACF Group country_page_blocks со всеми полями-галочками:

7 Преимущества

ПлюсПочему работает
Нет пустых заглушекНет видео → блок скрыт, а не «Coming soon»
Страница адаптивна под странуМальдивы без «городских рейсов», Турция без «аюрведа»
Менеджер-firstНе нужен программист для нового блока
Переиспользование1 блок в коде → 73 страны могут его включить
Быстрый запуск новой страныКлонировали, оставили нужные галочки — 5 минут
A/B тестированиеВключил блок → замерил конверсию → решил
SEO-чистотаНет thin-content → нет штрафов
AI OverviewЧистый HTML = лучшее понимание LLM

8 Roadmap внедрения

Фаза 1 — Foundation (1-2 недели)

  1. Создать CPT country, hotel, brand, niche
  2. Создать ACF Field Groups country_blocks, hotel_blocks и т.д.
  3. Зарегистрировать 15 обязательных блоков + partials в теме
  4. Создать шаблон single-country.php с циклом рендера

Фаза 2 — Первые 3 страны (1 неделя)

  1. Турция (шаблон-эталон)
  2. Мальдивы (проверка на сильно отличающейся конфигурации)
  3. Египет (проверка масштабируемости)

Фаза 3 — Опциональные блоки (2-3 недели)

  1. Видео, аудио, инфографика (контент-зависимые)
  2. Свадебные, горнолыжка, SPA, гастро, дайвинг, яхтинг, шопинг, паломничество
  3. Отзывы (интеграция с модерацией)
  4. Промо-баннеры (связь с CPT campaign)

Фаза 4 — Масштабирование (1 месяц)

  1. Прогон 73 стран через скрипт импорта (включаем нужные блоки)
  2. 21 000 hotel pages через hotel_blocks
  3. 48 brand pages через brand_blocks
  4. 15 ниш × 38 стран = 570 niche-страниц через niche_blocks
Важно: связанные стандарты (live-reference):

Обновлено 24.04.2026 · BestOnline-tour.ru · Parent page: 📐 Мастер-стандарты