diff --git a/wp-content/themes/dekart/assets/css/front-page.css b/wp-content/themes/dekart/assets/css/front-page.css index 03ac7c1..dc4ee5c 100644 --- a/wp-content/themes/dekart/assets/css/front-page.css +++ b/wp-content/themes/dekart/assets/css/front-page.css @@ -1,7 +1,6 @@ /* ═══════════════════════════════════════════════════ front-page.css — стили для шаблона front-page.php - Извлечены из inline style="..." для соответствия - стандартам и оптимизации скорости загрузки + Hero использует ds-hero из main.css (как /podgotovka-k-shkole/) ═══════════════════════════════════════════════════ */ /* ---- Блок "Наши услуги" (блоки-карточки) ---- */ @@ -25,6 +24,90 @@ max-width: 100%; } +/* ---- Выделение учебного года ---- */ +.ds-hero__year { + color: #60A5FA; + font-weight: 800; + white-space: nowrap; + text-shadow: 0 0 6px rgba(96, 165, 250, 0.3); +} + +/* ---- Анимированные звёзды рейтинга ---- */ +.ds-hero__rating-stars { + display: inline-flex; + gap: 3px; + vertical-align: middle; +} + +.ds-star { + display: inline-flex; + opacity: 0; + transform: scale(0.3); + animation: ds-star-pop 0.5s cubic-bezier(0.34, 1.56, 0.64, 1) forwards; +} + +.ds-star svg { + display: block; + width: 18px; + height: 18px; + color: var(--color-rating, #F59E0B); + filter: drop-shadow(0 0 0 transparent); + transition: filter 0.3s; +} + +/* Анимация появления + сияние */ +@keyframes ds-star-pop { + 0% { opacity: 0; transform: scale(0.3) rotate(-15deg); } + 50% { opacity: 1; transform: scale(1.25); } + 70% { opacity: 1; transform: scale(0.95); } + 85% { opacity: 1; transform: scale(1.05); } + 100% { opacity: 1; transform: scale(1); } +} + +@keyframes ds-star-shine { + 0% { filter: drop-shadow(0 0 0 rgba(245, 158, 11, 0)); } + 40% { filter: drop-shadow(0 0 8px rgba(245, 158, 11, 0.8)) drop-shadow(0 0 20px rgba(245, 158, 11, 0.3)); } + 100% { filter: drop-shadow(0 0 0 rgba(245, 158, 11, 0)); } +} + +/* Задержки для каждой звезды */ +.ds-star--1 { animation-delay: 0.2s; } +.ds-star--2 { animation-delay: 0.5s; } +.ds-star--3 { animation-delay: 0.8s; } +.ds-star--4 { animation-delay: 1.1s; } +.ds-star--5 { animation-delay: 1.4s; } + +/* Сияние — догоняется после появления */ +.ds-star--1 svg { animation: ds-star-shine 0.7s ease-out 0.5s forwards; } +.ds-star--2 svg { animation: ds-star-shine 0.7s ease-out 0.8s forwards; } +.ds-star--3 svg { animation: ds-star-shine 0.7s ease-out 1.1s forwards; } +.ds-star--4 svg { animation: ds-star-shine 0.7s ease-out 1.4s forwards; } +.ds-star--5 svg { animation: ds-star-shine 0.7s ease-out 1.7s forwards; } + +/* ---- Hero assurance (risk reversal + urgency) ---- */ +.ds-hero__assurance { + display: flex; + flex-wrap: wrap; + gap: var(--space-2); + margin-top: 12px; + margin-bottom: 8px; +} + +.ds-hero__assurance-item { + font-size: 13px; + color: rgba(255, 255, 255, 0.65); + display: inline-flex; + align-items: center; + gap: 4px; +} + +.ds-hero__assurance-item::before { + content: '✓'; + color: #4ADE80; + font-weight: 700; + font-size: 11px; +} + /* ---- CTA-блок (бесплатная экскурсия) ---- */ .cta-block { background: linear-gradient(90deg, #fdf6ff 0%, #f5e8f5 100%); diff --git a/wp-content/themes/dekart/front-page.php b/wp-content/themes/dekart/front-page.php index 6259e64..abdd6be 100644 --- a/wp-content/themes/dekart/front-page.php +++ b/wp-content/themes/dekart/front-page.php @@ -6,61 +6,29 @@ Template Name: шаблон главной страницы get_header(); $post_id = get_the_ID(); +// ─── УЧЕБНЫЙ ГОД ─── +$current_year = (int) date( 'Y' ); +$next_year = $current_year + 1; +$school_year = $current_year . '/' . $next_year; + // ─── ДАННЫЕ ФИЛИАЛА ─── $branch_email = get_option( 'branch_email' ) ?: carbon_get_theme_option( 'site_mail' ) ?: ''; $branch_phone = get_option( 'branch_phone' ) ?: carbon_get_theme_option( 'site_phone' ) ?: ''; $branch_name = get_option( 'branch_name' ) ?: carbon_get_theme_option( 'site_name' ) ?: 'Декарт'; +$branch_city = get_option( 'branch_city' ) ?: carbon_get_theme_option( 'site_city' ) ?: 'Щёлково'; +$branch_city_prep = get_option( 'branch_city_prep' ) ?: 'в Щёлково'; +$branch_addr = get_option( 'branch_address' ) ?: carbon_get_theme_option( 'site_address' ) ?: ''; ?>
- - + - - - + -
+

Наши услуги

diff --git a/wp-content/themes/dekart/functions.php b/wp-content/themes/dekart/functions.php index 124a568..11c928a 100644 --- a/wp-content/themes/dekart/functions.php +++ b/wp-content/themes/dekart/functions.php @@ -23,6 +23,42 @@ add_filter( 'pre_option_blogname', function( $default ) { add_filter( 'wpseo_json_ld_output', '__return_false' ); /* --- Удаляем мета из YOASTSEO END --- */ +// ──────────────────────────────────────────────────── +// Hero-изображение как OG/Twitter image для главной +// ──────────────────────────────────────────────────── +add_filter( 'wpseo_opengraph_image', 'dekart_front_hero_og_image' ); +add_filter( 'wpseo_twitter_image', 'dekart_front_hero_og_image' ); +function dekart_front_hero_og_image( $img ) { + if ( ! is_front_page() ) { + return $img; + } + $foto_id = carbon_get_post_meta( get_the_ID(), 'banner_img_desktop' ); + if ( $foto_id ) { + $url = wp_get_attachment_image_url( $foto_id, 'full' ); + if ( $url ) { + return $url; + } + } + return $img; +} + +// ──────────────────────────────────────────────────── +// CRO: UTM-метки → cookie (30 дней) +// ──────────────────────────────────────────────────── +add_action( 'init', function () { + if ( is_admin() || wp_doing_ajax() || wp_doing_cron() ) { + return; + } + if ( ! isset( $_COOKIE['utm_source'] ) && ! empty( $_GET['utm_source'] ) ) { + $utm_params = [ 'utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content' ]; + foreach ( $utm_params as $param ) { + if ( ! empty( $_GET[ $param ] ) ) { + setcookie( $param, sanitize_text_field( $_GET[ $param ] ), time() + 30 * DAY_IN_SECONDS, COOKIEPATH, COOKIE_DOMAIN, is_ssl(), true ); + } + } + } +} ); + // Отключаем Reading Time для страницы Подготовки к школе add_filter( 'wpseo_frontend_presenter_classes', 'dekart_disable_reading_time_pksh' ); function dekart_disable_reading_time_pksh( array $presenters ): array { @@ -360,20 +396,39 @@ function add_carbon() { )); // ==================================================== - // Уникальное имя контейнера Главной Страницы + // Главная Страница — tabbed-horizontal (как pksh) // ==================================================== Container::make('post_meta', 'Настройки Главной Страницы') ->where('post_template', '=', 'front-page.php') - ->add_fields(array( - Field::make( 'textarea', 'block_text_1', 'Текст для блока Частная школа в Щелково "Декарт"' ), - Field::make( 'image', 'main_banner_img_desktop', 'Изображение рекламного баннера (десктопная версия)' ) - ->help_text( 'Размер изображения (желательно) 1185px на 190px' ) - ->set_width( 15 ), - Field::make( 'image', 'main_banner_img_mobile', 'Изображение рекламного баннера (мобильная версия)' ) - ->help_text( 'Размер изображения (желательно) 390px на 550px' ) - ->set_width( 15 ), + ->add_tab('🖼️ HERO', array( + Field::make( 'html', 'front_hero_tab_desc', '' ) + ->set_html( '

Фото — квадратное 600×600, в круглой рамке справа.

' ), + Field::make( 'image', 'banner_img_desktop', 'Фото' ) + ->set_width( 50 ), + Field::make( 'text', 'banner_h1', 'Заголовок H1' ) + ->set_width( 50 ) + ->set_attribute( 'placeholder', 'Частная школа в Щёлково' ), + Field::make( 'html', 'front_hero_stats_sep', '' ) + ->set_html( '

📊 Показатели статистики

Добавьте/удалите карточки через +/-.

' ), + Field::make( 'complex', 'hero_stats', 'Показатели' ) + ->set_layout( 'tabbed-horizontal' ) + ->add_fields( array( + Field::make( 'text', 'stat_number', 'Число' ) + ->set_width( 30 ) + ->set_help_text( 'Например: 12+, 500+, до 12' ), + Field::make( 'text', 'stat_label', 'Подпись' ) + ->set_width( 70 ) + ->set_help_text( 'Например: лет опыта, выпускников' ), + )), + )) + ->add_tab('📄 КОНТЕНТ', array( + Field::make( 'textarea', 'block_text_1', 'Текст для блока "Частная школа в Щелково "Декарт""' ), + Field::make( 'image', 'main_banner_img_desktop', 'Изображение рекламного баннера (десктоп)' ) + ->help_text( 'Размер изображения (желательно) 1185px на 190px' )->set_width( 30 ), + Field::make( 'image', 'main_banner_img_mobile', 'Изображение рекламного баннера (мобильное)' ) + ->help_text( 'Размер изображения (желательно) 390px на 550px' )->set_width( 30 ), Field::make( 'text', 'main_banner_link', 'УРЛ баннера:' ) - ->set_default_value('#'), + ->set_default_value('#')->set_width( 40 ), )); // ==================================================== diff --git a/wp-content/themes/dekart/header.php b/wp-content/themes/dekart/header.php index c1f60ce..a226857 100644 --- a/wp-content/themes/dekart/header.php +++ b/wp-content/themes/dekart/header.php @@ -41,18 +41,11 @@ if ( is_page_template( 'page-podgotovka-k-shkole.php' ) ) { // ───────────────────────────────────────────────────────────────────── if ( is_front_page() ) { $post_id = get_the_ID(); - $foto_id = carbon_get_post_meta( $post_id, 'banner_img_desktop' ); - $foto_mob_id = carbon_get_post_meta( $post_id, 'banner_img_mobile' ); - if ( ! $foto_mob_id ) $foto_mob_id = $foto_id; + $foto_id = carbon_get_post_meta( $post_id, 'banner_img_desktop' ); + $banner_src = $foto_id ? wp_get_attachment_url( $foto_id ) : ''; - $banner_desk = $foto_id ? wp_get_attachment_url( $foto_id ) : ''; - $banner_mob = $foto_mob_id ? wp_get_attachment_url( $foto_mob_id ) : ''; - - if ( $banner_desk ) { - echo '' . "\n"; - } - if ( $banner_mob && $banner_mob !== $banner_desk ) { - echo '' . "\n"; + if ( $banner_src ) { + echo '' . "\n"; } } ?> diff --git a/wp-content/themes/dekart/template-parts/hero-front.php b/wp-content/themes/dekart/template-parts/hero-front.php new file mode 100644 index 0000000..2c0af55 --- /dev/null +++ b/wp-content/themes/dekart/template-parts/hero-front.php @@ -0,0 +1,182 @@ + '12+', 'stat_label' => 'лет опыта' ], + [ 'stat_number' => '500+', 'stat_label' => 'выпускников' ], + [ 'stat_number' => 'до 12', 'stat_label' => 'человек в классе' ], + ]; +} + +// ─── ЗВЁЗДЫ (SVG один раз) ─── +$star_svg = ''; + +// ─── ПЛАШКИ (float-блоки) ─── +$floats = [ + [ 'icon' => 'teacher', 'text' => 'Педагоги с опытом от 10 лет' ], + [ 'icon' => 'users', 'text' => 'Классы до 12 человек' ], + [ 'icon' => 'clock', 'text' => 'Первая смена + продлёнка' ], +]; + +// ─── ФОРМАТИРОВАНИЕ ТЕЛЕФОНА ─── +$phone_clean = $branch_phone ? preg_replace( '/[\s\-\–\(\)]/', '', $branch_phone ) : ''; +?>
+
+
+ +
+ + +
+ + +
+ + +

+ +

Небольшие классы до 12 человек, опытные педагоги и английский с 1 класса. Первая смена + продлёнка до 18:00. Приходите посмотреть школу и познакомиться с учителем. Открыт набор на год.

+ + +
+ +
+ + +
+ +
+ + +
+ + 4.9 из 5 на основе 190 отзывов на внешних площадках +
+ + + +
+ Можно просто прийти и посмотреть + Бесплатное тестирование ребёнка +
+ + +

Или позвоните:

+ + +
+ +
+ + +
+
+ <?php echo esc_attr( $banner_alt ); ?> +
+ +
+ + $float ) : ?> +
+ + +
+ + +
+ +
+
+
+ +