Каждая посадочная (country, hotel, brand, niche) состоит из двух частей:
Менеджер в админке видит чекбоксы и настраивает каждую страницу индивидуально без программиста.
Почему это важно:
| Блок | Обязательный | Default | Нужен контент? |
|---|---|---|---|
| Hero + H1 | Да | — | — |
| BLUF — 4 факта | Да | — | — |
| Форма поиска | Да | — | — |
| Sticky TOC | Да | — | — |
| Популярные курорты | Нет | ✓ | — |
| Туры из вашего города | Нет | ✓ | — |
| Почему эта страна | Нет | ✓ | — |
| Погода по месяцам | Нет | ✓ | — |
| Цены по месяцам | Нет | ✓ | — |
| Достопримечательности | Нет | ✓ | — |
| Отели по категориям | Нет | ✓ | — |
| Виза · перелёт | Нет | ✓ | — |
| FAQ | Нет | ✓ | — |
| Блог — гиды | Нет | ✓ | — |
| Другие страны | Нет | ✓ | — |
| Видео-обзор | Нет | ✗ | YouTube URL |
| Аудио-версия | Нет | ✗ | mp3 файл |
| Карта интерактивная | Нет | ✗ | — |
| Свадебные туры | Нет | ✗ | — |
| Горнолыжные курорты | Нет | ✗ | — |
| SPA · термальные | Нет | ✗ | — |
| Гастрономия | Нет | ✗ | — |
| Дайвинг | Нет | ✗ | — |
| Яхтенные туры | Нет | ✗ | — |
| Шопинг-туры | Нет | ✗ | — |
| Паломнические туры | Нет | ✗ | — |
| Отзывы клиентов | Нет | ✗ | список отзывов |
| Инфографика | Нет | ✗ | SVG файл |
| Промо-баннер | Нет | ✗ | CPT campaign |
| Блок | Обязательный | Default |
|---|---|---|
| Hero + имя отеля + звёзды + рейтинг | Да | — |
| BLUF «Главное» (8 фактов) | Да | — |
| Виджет бронирования (партнёр-поставщик) | Да | — |
| Галерея фото | Да | — |
| Описание отеля | Нет | ✓ |
| Пляж | Нет | ✓ |
| Номера | Нет | ✓ |
| Питание | Нет | ✓ |
| Для семей | Нет | ✓ |
| SPA / фитнес / анимация | Нет | ✓ |
| Что рядом | Нет | ✓ |
| Погода месяцев | Нет | ✓ |
| FAQ | Нет | ✓ |
| Cross-brand (другие отели сети) | Нет | ✓ |
| Похожие отели | Нет | ✓ |
| Видео-обзор отеля | Нет | ✗ |
| Отзывы гостей (агрегация) | Нет | ✗ |
| Live-трансляция / веб-камера | Нет | ✗ |
| Экскурсии от отеля | Нет | ✗ |
| Блок | Турция | Мальдивы | ОАЭ | Индия | Таиланд |
|---|---|---|---|---|---|
| Курорты | ✓ 12 | — (атоллы) | ✓ 5 | ✓ 8 | ✓ 6 |
| Из города | ✓ 15 | ✓ 8 | ✓ 10 | ✓ 5 | ✓ 8 |
| Погода | ✓ | ✓ | ✓ | ✓ | ✓ |
| Цены | ✓ | ✓ | ✓ | ✓ | ✓ |
| Достопримечательности | ✓ 10 | — | ✓ 8 | ✓ 12 | ✓ 10 |
| Горнолыжка | ✓ 4 | — | — | ✓ Гульмарг | — |
| Свадебные | ✓ | ✓ №1 | ✓ | — | ✓ |
| Медовый месяц | ✓ | ✓ | ✓ | — | ✓ |
| Аюрведа | — | — | — | ✓ 12 | — |
| SPA / термальные | ✓ | ✓ | — | ✓ | ✓ |
| Гастрономия | ✓ | — | ✓ | ✓ | ✓ |
| Дайвинг | ✓ | ✓ топ | ✓ | — | ✓ топ |
| Яхтинг | ✓ | ✓ | — | — | ✓ |
| Шопинг-туры | ✓ Стамбул | — | ✓ Дубай | — | ✓ Бангкок |
| Паломничество | — | — | — | ✓ | — |
| Видео | — пока | ✓ | — | — | — |
| Аудио | — | ✓ | — | ✓ | — |
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'],
];
}
<?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";
}
?>
Создаём ACF Group country_page_blocks со всеми полями-галочками:
show_resorts — True/False, default: trueshow_weather — True/False, default: trueshow_video — True/False, default: falsevideo_url — URL (условное поле — показывается если show_video=true)| Плюс | Почему работает |
|---|---|
| Нет пустых заглушек | Нет видео → блок скрыт, а не «Coming soon» |
| Страница адаптивна под страну | Мальдивы без «городских рейсов», Турция без «аюрведа» |
| Менеджер-first | Не нужен программист для нового блока |
| Переиспользование | 1 блок в коде → 73 страны могут его включить |
| Быстрый запуск новой страны | Клонировали, оставили нужные галочки — 5 минут |
| A/B тестирование | Включил блок → замерил конверсию → решил |
| SEO-чистота | Нет thin-content → нет штрафов |
| AI Overview | Чистый HTML = лучшее понимание LLM |
country, hotel, brand, nichecountry_blocks, hotel_blocks и т.д.single-country.php с циклом рендераОбновлено 24.04.2026 · BestOnline-tour.ru · Parent page: 📐 Мастер-стандарты