Как создать адаптивную тему WordPress на Flexbox

Создание адаптивной темы WordPress — это одна из ключевых задач для любого разработчика, стремящегося обеспечить удобство просмотра сайта на устройствах с разными размерами экранов. Сегодня мы подробно рассмотрим, как построить адаптивный макет темы WordPress с использованием CSS Flexbox, который значительно упрощает вёрстку и управление расположением элементов.

Почему Flexbox — лучший выбор для адаптивной темы WordPress

Flexbox — это современный CSS-модуль, предназначенный для построения гибких и адаптивных макетов. В отличие от традиционных способов, таких как float или inline-block, Flexbox позволяет легко выравнивать элементы, распределять свободное пространство и изменять порядок элементов без изменения HTML.

Для темы WordPress это означает, что вы сможете создавать сложные и при этом простые в поддержке структуры страниц, которые корректно отображаются на мобильных устройствах, планшетах и десктопах.

Кроме того, Flexbox отлично сочетается с медиазапросами, что позволяет изменять расположение и размеры блоков в зависимости от ширины экрана.

Структура темы WordPress с Flexbox: базовый пример

Начнём с базовой структуры темы. Предположим, у нас есть три основных блока: header, main и footer. Внутри main будет две колонки: основное содержимое и сайдбар.

<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>WPCatalog тема на Flexbox</title>
    <?php wp_head(); ?>
</head>
<body>
    <header class="site-header">
        <h1><?php bloginfo('name'); ?></h1>
    </header>
    <div class="site-content">
        <main class="content-area">
            <?php
            if ( have_posts() ) :
                while ( have_posts() ) : the_post();
                    the_title('<h2>','</h2>');
                    the_content();
                endwhile;
            endif;
            ?>
        </main>
        <aside class="sidebar">
            <?php get_sidebar(); ?>
        </aside>
    </div>
    <footer class="site-footer">
        <p>© <?php echo date('Y'); ?> <?php bloginfo('name'); ?></p>
    </footer>
    <?php wp_footer(); ?>
</body>
</html>

Зададим стили с Flexbox для классов site-content, content-area и sidebar.

/* Основные стили для адаптивного макета на Flexbox */
.site-content {
    display: flex;
    flex-wrap: wrap;
    margin: 0 auto;
    max-width: 1200px;
}

.content-area {
    flex: 3 1 60%; /* основной контент занимает примерно 60% ширины */
    padding: 20px;
    box-sizing: border-box;
}

.sidebar {
    flex: 1 1 30%; /* сайдбар — около 30% ширины */
    padding: 20px;
    box-sizing: border-box;
}

/* Медиазапрос для экранов меньше 768px */
@media (max-width: 768px) {
    .site-content {
        flex-direction: column;
    }
    .content-area, .sidebar {
        flex: 1 1 100%;
        padding: 10px;
    }
}

Добавляем адаптивное меню с помощью плагина WPCommunity

Чтобы не создавать меню с нуля, рекомендуем использовать плагин WPCommunity. Он позволяет быстро добавить мобильное адаптивное меню, которое отлично впишется в тему на Flexbox.

После установки и активации плагина в настройках выберите стиль меню «Flexbox Responsive». Это меню автоматически подстроится под размер экрана, скрываясь за бургер-иконкой на мобильных устройствах.

Пример интеграции меню в тему

Добавьте в header.php следующую функцию для вывода меню:

<?php
function wpcatalog_wpcommunity_header_menu() {
    if ( function_exists('wpcommunity_menu') ) {
        wpcommunity_menu();
    }
}
?>

<header class="site-header">
    <h1><?php bloginfo('name'); ?></h1>
    <?php wpcatalog_wpcommunity_header_menu(); ?>
</header>

Улучшение производительности темы с помощью Clearfy Pro

Для оптимизации работы WordPress и ускорения загрузки страницы рекомендуем использовать плагин Clearfy Pro. Он позволяет отключить ненужные функции и скрипты, которые могут замедлять сайт.

Особенно полезно в теме с Flexbox отключить лишние стили и скрипты, которые не используются, что снизит общий вес страницы и улучшит отзывчивость.

Создание кастомного шорткода для вывода адаптивного блока

Иногда хочется добавить в содержимое страницы адаптивный блок с элементами, выстроенными на Flexbox. Создадим шорткод, который выводит простой адаптивный блок с двумя колонками.

<?php
function wpcatalog_flexbox_shortcode($atts, $content = null) {
    $atts = shortcode_atts(array(
        'left' => 'Левая колонка',
        'right' => 'Правая колонка',
    ), $atts, 'wpcatalog_flexbox');

    return '<div class="wpcatalog-flexbox">'
        . '<div class="left">' . esc_html($atts['left']) . '</div>'
        . '<div class="right">' . esc_html($atts['right']) . '</div>'
        . '</div>';
}
add_shortcode('wpcatalog_flexbox', 'wpcatalog_flexbox_shortcode');
?>

Добавьте в CSS стили для этого блока:

.wpcatalog-flexbox {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
}
.wpcatalog-flexbox .left, .wpcatalog-flexbox .right {
    flex: 1 1 45%;
    background: #f0f0f0;
    padding: 15px;
    box-sizing: border-box;
}
@media (max-width: 600px) {
    .wpcatalog-flexbox {
        flex-direction: column;
    }
    .wpcatalog-flexbox .left, .wpcatalog-flexbox .right {
        flex: 1 1 100%;
    }
}

Теперь в редакторе WordPress можно вставить шорткод:

[wpcatalog_flexbox left="Контент левой колонки" right="Контент правой колонки"]

Этот простой пример демонстрирует, как легко интегрировать адаптивные элементы в содержимое сайта.

Отладка и советы по работе с Flexbox в WordPress

При разработке темы на Flexbox важно учитывать поддержку браузеров. На сегодняшний день все современные браузеры отлично поддерживают Flexbox, однако для старых версий IE могут понадобиться fallback-стили.

Используйте инструменты разработчика браузера (Chrome DevTools, Firefox Developer Tools) для проверки, как ведёт себя ваш макет на разных разрешениях.

Если Flexbox элементы ведут себя не так, как ожидается, проверьте свойства flex-grow, flex-shrink и flex-basis, а также наличие min-width и max-width, которые могут ограничивать размеры блоков.

Пример функции для динамического добавления классов Flexbox

Для расширения гибкости темы можно создавать функции, которые динамически добавляют классы в зависимости от условий, например, ширины экрана или типа устройства.

function wpcatalog_add_flex_class($classes) {
    if (wp_is_mobile()) {
        $classes[] = 'flex-column';
    } else {
        $classes[] = 'flex-row';
    }
    return $classes;
}
add_filter('body_class', 'wpcatalog_add_flex_class');

В CSS можно прописать стили для этих классов, что позволит менять направление Flexbox-контейнера без изменения HTML.

В итоге, используя Flexbox, вы получите лёгкую, гибкую и современную адаптивную тему WordPress, которая будет отлично работать на любых устройствах и позволит легко модифицировать макет без сложных переделок.

Как автоматизировать удаление неактивных пользователей в WordPress
28.03.2026
Как удалить повторяющиеся товары в WooCommerce без плагинов
24.05.2026
Как создать адаптивную тему WordPress на Flexbox
15.12.2025
Как создать автоматическую регистрацию пользователей в WordPress с использованием хуков
30.01.2026
WooCommerce: автоматическое отключение товаров при нулевом остатке
20.05.2026