This commit is contained in:
2026-07-12 12:46:12 +03:00
parent 02c186260c
commit 7110a0d029
7 changed files with 82 additions and 9 deletions

View File

@@ -3,6 +3,7 @@
} }
.home-hero__inner, .home-hero__inner,
.home-about__inner,
.home-categories__inner, .home-categories__inner,
.home-commerce__inner, .home-commerce__inner,
.home-steps__inner { .home-steps__inner {
@@ -76,6 +77,7 @@
border-radius: var(--radius-md); border-radius: var(--radius-md);
} }
.home-about,
.home-categories, .home-categories,
.home-showcase, .home-showcase,
.home-commerce, .home-commerce,
@@ -88,6 +90,7 @@
padding: 70px 0; padding: 70px 0;
} }
.home-about__inner,
.home-categories__inner, .home-categories__inner,
.home-showcase__inner, .home-showcase__inner,
.home-commerce__inner, .home-commerce__inner,
@@ -101,6 +104,38 @@
margin: 0 auto; margin: 0 auto;
} }
.home-about {
background: var(--color-surface-soft);
}
.home-about__inner {
display: grid;
grid-template-columns: minmax(260px, 0.72fr) minmax(0, 1.28fr);
gap: 56px;
align-items: start;
}
.home-about__heading {
display: grid;
gap: 18px;
position: sticky;
top: 150px;
}
.home-about__content {
display: grid;
gap: 18px;
color: var(--color-muted);
}
.home-about__content a {
color: var(--color-accent-dark);
font-weight: 700;
text-decoration: underline;
text-decoration-thickness: 1px;
text-underline-offset: 3px;
}
.home-categories__head, .home-categories__head,
.home-showcase__head, .home-showcase__head,
.home-commerce__head, .home-commerce__head,

View File

@@ -50,6 +50,7 @@
.service-faq, .service-faq,
.service-lead, .service-lead,
.home-hero, .home-hero,
.home-about,
.home-categories, .home-categories,
.home-commerce, .home-commerce,
.home-steps, .home-steps,
@@ -66,6 +67,7 @@
.service-process__inner, .service-process__inner,
.service-lead__inner, .service-lead__inner,
.home-hero__inner, .home-hero__inner,
.home-about__inner,
.home-steps__inner, .home-steps__inner,
.portfolio-hero__inner, .portfolio-hero__inner,
.portfolio-lead__inner { .portfolio-lead__inner {
@@ -116,6 +118,7 @@
.service-faq__inner, .service-faq__inner,
.service-lead__inner, .service-lead__inner,
.home-hero__inner, .home-hero__inner,
.home-about__inner,
.home-categories__inner, .home-categories__inner,
.home-commerce__inner, .home-commerce__inner,
.home-steps__inner, .home-steps__inner,
@@ -140,6 +143,10 @@
aspect-ratio: 1; aspect-ratio: 1;
} }
.home-about__heading {
position: static;
}
.home-final__inner { .home-final__inner {
align-items: flex-start; align-items: flex-start;
flex-direction: column; flex-direction: column;

View File

@@ -16,7 +16,7 @@ if ( ! defined( 'ABSPATH' ) ) {
<span class="site-footer__title">Навигация</span> <span class="site-footer__title">Навигация</span>
<ul class="site-footer__list"> <ul class="site-footer__list">
<li class="site-footer__item"><a class="site-footer__link" href="<?php echo esc_url( home_url( '/' ) ); ?>">Главная</a></li> <li class="site-footer__item"><a class="site-footer__link" href="<?php echo esc_url( home_url( '/' ) ); ?>">Главная</a></li>
<li class="site-footer__item"><a class="site-footer__link" href="<?php echo esc_url( home_url( '/torty-na-zakaz/' ) ); ?>">Торты на заказ</a></li> <li class="site-footer__item"><a class="site-footer__link" href="<?php echo esc_url( home_url( '/' ) ); ?>">Торты на заказ в Севастополе</a></li>
<li class="site-footer__item"><a class="site-footer__link" href="<?php echo esc_url( home_url( '/portfolio/' ) ); ?>">Портфолио</a></li> <li class="site-footer__item"><a class="site-footer__link" href="<?php echo esc_url( home_url( '/portfolio/' ) ); ?>">Портфолио</a></li>
<li class="site-footer__item"><a class="site-footer__link" href="<?php echo esc_url( home_url( '/faq/' ) ); ?>">FAQ</a></li> <li class="site-footer__item"><a class="site-footer__link" href="<?php echo esc_url( home_url( '/faq/' ) ); ?>">FAQ</a></li>
</ul> </ul>

View File

@@ -22,6 +22,23 @@ get_header();
</div> </div>
</div> </div>
</section> </section>
<section class="home-about" aria-labelledby="home-about-title">
<div class="home-about__inner">
<div class="home-about__heading">
<span class="section-kicker">Торты для вашего события</span>
<h2 class="section-title" id="home-about-title">Торты на заказ в Севастополе: от идеи до аккуратной доставки</h2>
</div>
<div class="home-about__content">
<p>Готовим торты на заказ для дней рождения, свадеб, детских праздников, семейных встреч и корпоративных событий в Севастополе. Каждый заказ обсуждаем отдельно: уточняем дату, количество гостей, желаемый вес, начинку, оформление и способ получения. Можно прислать фотографию понравившегося торта, подобрать цветовую гамму под праздник или доверить идею нам. Мы предложим вариант, который будет соответствовать поводу, сроку и вашему бюджету.</p>
<p>Для небольшого поздравления подойдут <a href="<?php echo esc_url( home_url( '/bento/' ) ); ?>">бенто-торты</a> с надписью или лаконичным декором. Для большого праздника рассчитаем вес по количеству гостей и поможем выбрать формат подачи. Отдельно создаём <a href="<?php echo esc_url( home_url( '/detskie/' ) ); ?>">детские торты</a>, свадебные композиции, корпоративные торты с фирменными цветами и десерты на день рождения. В оформлении можно использовать ягоды, шоколад, надписи и персональные детали. Итоговый дизайн согласовываем до начала работы.</p>
<p>Вкус торта не менее важен, чем внешний вид. Поможем подобрать сочетание коржей, крема и наполнения с учётом формата события и предпочтений гостей. Доступны шоколадные, ванильные, ягодные и сливочные варианты. Если вы ещё не определились, расскажите, какие десерты любите: предложим несколько подходящих сочетаний и объясним, чем они отличаются. Актуальные варианты собраны на странице <a href="<?php echo esc_url( home_url( '/nachinki/' ) ); ?>">начинок для тортов</a>.</p>
<p>Работа над заказом начинается с короткого обсуждения. Вы сообщаете дату и повод, примерное количество гостей, вкусовые предпочтения и пожелания к оформлению. Затем мы предлагаем подходящий вес и начинку, уточняем детали декора, рассчитываем стоимость и фиксируем согласованный вариант. Такой порядок помогает заранее понимать результат и не принимать важные решения в последний момент.</p>
<p>Оптимально оформлять заказ за 24 дня. Для свадебного торта или сложного тематического декора лучше обратиться раньше, чтобы спокойно согласовать все детали. Срочный заказ возможен, если в расписании есть свободное окно и выбранное оформление можно выполнить в нужный срок. Мы заранее сообщим, какие варианты доступны, и не подтвердим заказ, пока не согласуем состав, внешний вид и стоимость.</p>
<p>Перед выдачей торт упаковываем с учётом его размера и оформления. Для перевозки важно поставить коробку на ровную поверхность, не оставлять десерт в тёплом салоне и после получения хранить его в холодильнике. При доставке заранее согласуем адрес и временной интервал, чтобы торт приехал к празднику без лишнего ожидания.</p>
<p>Готовый торт можно получить самовывозом или заказать доставку по Севастополю в согласованный интервал. Цена зависит от веса, начинки, сложности декора, срочности и адреса доставки. На странице <a href="<?php echo esc_url( home_url( '/ceny/' ) ); ?>">цен на торты</a> указаны ориентиры, а точную сумму назовём после короткого описания заказа. Оставьте заявку с датой праздника, количеством гостей и пожеланиями — мы уточним детали и предложим подходящий вариант.</p>
</div>
</div>
</section>
<section class="home-categories"> <section class="home-categories">
<div class="home-categories__inner"> <div class="home-categories__inner">
<div class="home-categories__head"> <div class="home-categories__head">

View File

@@ -44,7 +44,8 @@ if ( ! defined( 'ABSPATH' ) ) {
<li class="site-header__menu-item site-header__menu-item--catalog"> <li class="site-header__menu-item site-header__menu-item--catalog">
<button class="site-header__menu-link site-header__menu-button" type="button" aria-expanded="false">Каталог</button> <button class="site-header__menu-link site-header__menu-button" type="button" aria-expanded="false">Каталог</button>
<div class="site-header__catalog"> <div class="site-header__catalog">
<?php foreach ( array( 'torty-na-zakaz', 'bento', 'detskie', 'svadebnye', 'korporativnye', 'na-den-rozhdeniya', 'srochnyj-zakaz', 'nachinki' ) as $slug ) : ?> <a class="site-header__catalog-link" href="<?php echo esc_url( home_url( '/' ) ); ?>">Все торты на заказ</a>
<?php foreach ( array( 'bento', 'detskie', 'svadebnye', 'korporativnye', 'na-den-rozhdeniya', 'srochnyj-zakaz', 'nachinki' ) as $slug ) : ?>
<?php $item = sev_tort_pages()[ $slug ]; ?> <?php $item = sev_tort_pages()[ $slug ]; ?>
<a class="site-header__catalog-link" href="<?php echo esc_url( home_url( '/' . $item['slug'] . '/' ) ); ?>"><?php echo esc_html( $item['label'] ); ?></a> <a class="site-header__catalog-link" href="<?php echo esc_url( home_url( '/' . $item['slug'] . '/' ) ); ?>"><?php echo esc_html( $item['label'] ); ?></a>
<?php endforeach; ?> <?php endforeach; ?>
@@ -79,7 +80,8 @@ if ( ! defined( 'ABSPATH' ) ) {
<div class="mobile-menu__catalog"> <div class="mobile-menu__catalog">
<button class="mobile-menu__link mobile-menu__catalog-toggle" type="button" aria-expanded="false" aria-controls="mobile-catalog-list" data-mobile-catalog-toggle>Каталог</button> <button class="mobile-menu__link mobile-menu__catalog-toggle" type="button" aria-expanded="false" aria-controls="mobile-catalog-list" data-mobile-catalog-toggle>Каталог</button>
<div class="mobile-menu__catalog-list" id="mobile-catalog-list" data-mobile-catalog hidden> <div class="mobile-menu__catalog-list" id="mobile-catalog-list" data-mobile-catalog hidden>
<?php foreach ( array( 'torty-na-zakaz', 'bento', 'detskie', 'svadebnye', 'korporativnye', 'na-den-rozhdeniya', 'srochnyj-zakaz', 'nachinki' ) as $slug ) : ?> <a class="mobile-menu__catalog-link" href="<?php echo esc_url( home_url( '/' ) ); ?>">Все торты на заказ</a>
<?php foreach ( array( 'bento', 'detskie', 'svadebnye', 'korporativnye', 'na-den-rozhdeniya', 'srochnyj-zakaz', 'nachinki' ) as $slug ) : ?>
<?php $item = sev_tort_pages()[ $slug ]; ?> <?php $item = sev_tort_pages()[ $slug ]; ?>
<a class="mobile-menu__catalog-link" href="<?php echo esc_url( home_url( '/' . $item['slug'] . '/' ) ); ?>"><?php echo esc_html( $item['label'] ); ?></a> <a class="mobile-menu__catalog-link" href="<?php echo esc_url( home_url( '/' . $item['slug'] . '/' ) ); ?>"><?php echo esc_html( $item['label'] ); ?></a>
<?php endforeach; ?> <?php endforeach; ?>

View File

@@ -19,6 +19,19 @@ function sev_tort_query_vars( $vars ) {
add_filter( 'wp_sitemaps_enabled', '__return_false' ); add_filter( 'wp_sitemaps_enabled', '__return_false' );
add_action( 'template_redirect', 'sev_tort_redirect_order_page_to_home', 1 );
function sev_tort_redirect_order_page_to_home() {
$path = isset( $_SERVER['REQUEST_URI'] ) ? parse_url( wp_unslash( $_SERVER['REQUEST_URI'] ), PHP_URL_PATH ) : '';
$path = trim( (string) $path, '/' );
if ( 'torty-na-zakaz' !== $path ) {
return;
}
wp_safe_redirect( home_url( '/' ), 301, 'Sevastopol Tort' );
exit;
}
add_filter( 'redirect_canonical', 'sev_tort_disable_static_seo_redirects', 10, 2 ); add_filter( 'redirect_canonical', 'sev_tort_disable_static_seo_redirects', 10, 2 );
function sev_tort_disable_static_seo_redirects( $redirect_url, $requested_url ) { function sev_tort_disable_static_seo_redirects( $redirect_url, $requested_url ) {
if ( sev_tort_is_static_seo_path() ) { if ( sev_tort_is_static_seo_path() ) {
@@ -97,11 +110,11 @@ function sev_tort_send_sitemap() {
); );
foreach ( $pages as $page ) { foreach ( $pages as $page ) {
if ( empty( $page['indexable'] ) ) { if ( empty( $page['indexable'] ) || 'torty-na-zakaz' === $page['slug'] ) {
continue; continue;
} }
$priority = in_array( $page['slug'], array( 'torty-na-zakaz', 'bento', 'detskie', 'svadebnye', 'na-den-rozhdeniya', 'ceny' ), true ) ? '0.9' : '0.8'; $priority = in_array( $page['slug'], array( 'bento', 'detskie', 'svadebnye', 'na-den-rozhdeniya', 'ceny' ), true ) ? '0.9' : '0.8';
$urls[] = array( $urls[] = array(
'loc' => home_url( '/' . $page['slug'] . '/' ), 'loc' => home_url( '/' . $page['slug'] . '/' ),
@@ -179,7 +192,7 @@ function sev_tort_llms_lines() {
'- Контактный телефон: ' . sev_tort_site_phone(), '- Контактный телефон: ' . sev_tort_site_phone(),
'', '',
'## Услуги', '## Услуги',
'- Торты на заказ: https://sevastopol-tort.ru/torty-na-zakaz/', '- Торты на заказ: https://sevastopol-tort.ru/',
'- Бенто-торты: https://sevastopol-tort.ru/bento/', '- Бенто-торты: https://sevastopol-tort.ru/bento/',
'- Детские торты: https://sevastopol-tort.ru/detskie/', '- Детские торты: https://sevastopol-tort.ru/detskie/',
'- Свадебные торты: https://sevastopol-tort.ru/svadebnye/', '- Свадебные торты: https://sevastopol-tort.ru/svadebnye/',

View File

@@ -601,8 +601,8 @@ function sev_tort_seo_meta_map() {
'description' => 'Выберите начинку для торта: шоколадные, ягодные, сливочные и легкие варианты. Подскажем сочетания под повод, вес, сезон и стиль декора заказа.', 'description' => 'Выберите начинку для торта: шоколадные, ягодные, сливочные и легкие варианты. Подскажем сочетания под повод, вес, сезон и стиль декора заказа.',
), ),
'ceny' => array( 'ceny' => array(
'title' => 'Цены на торты на заказ в Севастополе | Расчет стоимости', 'title' => 'Цены на торты в Севастополе | Стоимость и расчет',
'description' => 'Посмотрите ориентиры цен на торты в Севастополе: вес, декор, срочность и доставка влияют на итог. Отправьте идею для точного расчета заказа.', 'description' => 'Узнайте ориентировочные цены на торты в Севастополе. Стоимость зависит от веса, начинки, декора, срочности и доставки. Отправьте идею для расчета.',
), ),
'dostavka-i-oplata' => array( 'dostavka-i-oplata' => array(
'title' => 'Доставка и оплата тортов в Севастополе | Условия заказа', 'title' => 'Доставка и оплата тортов в Севастополе | Условия заказа',
@@ -634,7 +634,6 @@ function sev_tort_seo_meta_map() {
function sev_tort_nav_pages() { function sev_tort_nav_pages() {
$pages = sev_tort_pages(); $pages = sev_tort_pages();
$slugs = array( $slugs = array(
'torty-na-zakaz',
'bento', 'bento',
'detskie', 'detskie',
'svadebnye', 'svadebnye',