Создание адаптивного блока с картинкой в WordPress

Почему важно создавать адаптивные блоки с изображениями

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

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

Мы покажем, как сделать это с помощью кастомного кода, а также рассмотрим полезные плагины, которые помогут ускорить процесс.

Создание адаптивного блока с картинкой с помощью кастомного шорткода

Регистрация шорткода в functions.php

Для начала создадим кастомный шорткод, который будет выводить адаптивный блок с картинкой и текстом. В файле functions.php вашей темы добавьте следующий код:

function wpinfo_adaptive_image_block_shortcode($atts, $content = null) {
    $atts = shortcode_atts(array(
        'img' => '',
        'alt' => 'Image',
        'title' => '',
        'content' => '',
    ), $atts, 'wpinfo_image_block');

    if (empty($atts['img'])) {
        return '<div>No image provided.</div>';
    }

    $html = '<div class="wpinfo-adaptive-image-block">';
    $html .= '<div class="wpinfo-image-container">';
    $html .= '<img src="' . esc_url($atts['img']) . '" alt="' . esc_attr($atts['alt']) . '" />';
    $html .= '</div>';

    if (!empty($atts['title']) || !empty($atts['content'])) {
        $html .= '<div class="wpinfo-text-container">';
        if (!empty($atts['title'])) {
            $html .= '<h3>' . esc_html($atts['title']) . '</h3>';
        }
        if (!empty($atts['content'])) {
            $html .= '<p>' . esc_html($atts['content']) . '</p>';
        }
        $html .= '</div>';
    }

    $html .= '</div>';

    return $html;
}
add_shortcode('wpinfo_image_block', 'wpinfo_adaptive_image_block_shortcode');

Этот шорткод выводит блок с картинкой и текстом. Можно использовать так:

[wpinfo_image_block img="https://example.com/image.jpg" alt="Описание" title="Заголовок" content="Текст под картинкой"]

Стилизация блока для адаптивности

Чтобы блок корректно отображался на разных устройствах, добавим CSS. В файл стилей темы или в кастомный CSS плагина вставьте:

.wpinfo-adaptive-image-block {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 20px;
}

.wpinfo-image-container img {
    max-width: 100%;
    height: auto;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}

.wpinfo-image-container {
    flex: 1 1 300px;
    min-width: 250px;
}

.wpinfo-text-container {
    flex: 2 1 400px;
}

@media (max-width: 768px) {
    .wpinfo-adaptive-image-block {
        flex-direction: column;
        gap: 10px;
    }

    .wpinfo-text-container {
        text-align: center;
    }
}

Такой CSS сделает блок горизонтальным на больших экранах и вертикальным на мобильных устройствах.

Использование плагинов для создания адаптивных блоков с изображениями

Плагин Advanced Custom Fields (ACF) и Gutenberg

Для более гибкой работы с изображениями и текстом можно использовать плагин Advanced Custom Fields. Создайте группу полей с картинкой, заголовком и текстом для нужного типа записей или страниц, а затем выведите их в шаблоне.

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

Плагин Kadence Blocks

Если вы предпочитаете визуальные редакторы и готовые решения, обратите внимание на Kadence Blocks. В нем есть блоки с изображениями и текстом, которые легко настраиваются и автоматически адаптируются под все устройства.

Плюс, Kadence Blocks поддерживает расширенные опции для выравнивания, отступов и анимаций, что делает блоки ещё более привлекательными.

Расширенные советы по оптимизации адаптивных картинок в WordPress

Использование srcset и sizes для адаптивных изображений

WordPress с версии 4.4 автоматически добавляет атрибуты srcset и sizes к изображениям, что помогает браузерам выбирать подходящий размер картинки в зависимости от экрана пользователя.

Если вы создаёте блок вручную, убедитесь, что используете функцию wp_get_attachment_image(), которая генерирует необходимые атрибуты. В нашем шорткоде можно заменить обычный <img> на следующий вызов:

function wpinfo_adaptive_image_block_shortcode($atts, $content = null) {
    $atts = shortcode_atts(array(
        'img_id' => 0,
        'alt' => 'Image',
        'title' => '',
        'content' => '',
    ), $atts, 'wpinfo_image_block');

    if (empty($atts['img_id'])) {
        return '<div>No image provided.</div>';
    }

    $img_html = wp_get_attachment_image($atts['img_id'], 'large', false, array('alt' => $atts['alt']));

    $html = '<div class="wpinfo-adaptive-image-block">';
    $html .= '<div class="wpinfo-image-container">' . $img_html . '</div>';

    if (!empty($atts['title']) || !empty($atts['content'])) {
        $html .= '<div class="wpinfo-text-container">';
        if (!empty($atts['title'])) {
            $html .= '<h3>' . esc_html($atts['title']) . '</h3>';
        }
        if (!empty($atts['content'])) {
            $html .= '<p>' . esc_html($atts['content']) . '</p>';
        }
        $html .= '</div>';
    }

    $html .= '</div>';

    return $html;
}
add_shortcode('wpinfo_image_block', 'wpinfo_adaptive_image_block_shortcode');

Тогда в шорткоде передавайте ID вложения, например: [wpinfo_image_block img_id="123" alt="Описание" title="Заголовок" content="Текст"].

Оптимизация изображений для скорости загрузки

Важно не только сделать изображения адаптивными, но и оптимизировать их вес. Для этого используйте плагины, например:

  • Smush — автоматическая компрессия и lazy load.
  • Imagify — продвинутая оптимизация с разными уровнями сжатия.
  • WebP Express — конвертация в формат WebP для лучшей компрессии.

Правильная оптимизация ускорит загрузку страниц и улучшит пользовательский опыт.

Тестирование и отладка адаптивных блоков с изображениями

После создания блока обязательно проверьте его отображение на разных устройствах и разрешениях экрана. Для этого можно использовать инструменты разработчика в браузерах (Chrome DevTools, Firefox Developer Tools), переключаясь между режимами телефона, планшета и десктопа.

Также проверьте валидность HTML и CSS, чтобы избежать ошибок, которые могут повлиять на отображение.

Если блок используется часто, создайте unit-тесты или интеграционные тесты, используя инструменты типа PHPUnit или Codeception, чтобы убедиться, что изменения в коде не ломают адаптивность.

Автоматическое создание резервных копий WordPress: лучшие практики и примеры кода
22.12.2025
Как убрать версию WordPress из HTML и REST API для безопасности сайта
08.12.2025
WordPress авторизация без пароля: настройка и применение
05.12.2025
Как установить уникальный фон для каждого поста в WordPress
13.02.2026
Как отключить автоматический выход из WordPress
17.02.2026