Как добавить несколько обложек для записи в WordPress

Почему стандартный функционал WordPress ограничен одной обложкой

По умолчанию WordPress позволяет назначить только одну миниатюру записи (featured image). Это удобно для простых блогов и сайтов, где достаточно одной картинки, но часто возникает задача использовать несколько изображений для одной записи — например, для слайдера, галереи или разных обложек для разных целей.

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

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

Использование плагина Multiple Featured Images для нескольких обложек

Один из самых популярных и простых вариантов — плагин Multiple Featured Images. Он добавляет возможность назначать несколько миниатюр для записи и выводить их в шаблонах.

Преимущества плагина:

  • Простая установка и настройка
  • Добавление произвольного количества обложек
  • Поддержка популярных типов записей

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

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

if ( function_exists('get_post_meta') ) {
    $additional_image_id = get_post_meta( get_the_ID(), '_thumbnail_id_2', true );
    if ( $additional_image_id ) {
        echo wp_get_attachment_image( $additional_image_id, 'full' );
    }
}

Реализация нескольких обложек через кастомные метаполя и код (wplesson_add_multiple_thumbnails)

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

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

Добавим в functions.php тему следующий код для создания метабокса с загрузкой изображений:

function wplesson_add_multiple_thumbnails() {
    add_meta_box('wplesson_additional_thumbnails', 'Дополнительные обложки', 'wplesson_render_additional_thumbnails_meta_box', 'post', 'side', 'low');
}
add_action('add_meta_boxes', 'wplesson_add_multiple_thumbnails');

function wplesson_render_additional_thumbnails_meta_box($post) {
    wp_nonce_field(basename(__FILE__), 'wplesson_thumbnails_nonce');
    $image_id = get_post_meta($post->ID, '_wplesson_additional_thumbnail_id', true);
    $image_url = $image_id ? wp_get_attachment_url($image_id) : '';
    echo '<div id="wplesson_additional_thumbnail_container">';
    if ( $image_url ) {
        echo '<img src="' . esc_url($image_url) . '" style="max-width:100%;" />';
    }
    echo '</div>';
    echo '<input type="hidden" id="wplesson_additional_thumbnail_id" name="wplesson_additional_thumbnail_id" value="' . esc_attr($image_id) . '" />';
    echo '<button type="button" class="button" id="wplesson_upload_thumbnail">Выбрать изображение</button>';
}

Скрипт для загрузки изображения через медиа-библиотеку WordPress

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

function wplesson_admin_scripts($hook) {
    if ( 'post.php' !== $hook && 'post-new.php' !== $hook ) {
        return;
    }
    wp_enqueue_media();
    wp_enqueue_script('wplesson-admin-js', get_template_directory_uri() . '/js/wplesson-admin.js', array('jquery'), null, true);
}
add_action('admin_enqueue_scripts', 'wplesson_admin_scripts');

В файле js/wplesson-admin.js:

jQuery(document).ready(function($) {
    var frame;
    $('#wplesson_upload_thumbnail').on('click', function(e) {
        e.preventDefault();
        if (frame) {
            frame.open();
            return;
        }
        frame = wp.media({
            title: 'Выберите дополнительную обложку',
            button: { text: 'Выбрать' },
            multiple: false
        });
        frame.on('select', function() {
            var attachment = frame.state().get('selection').first().toJSON();
            $('#wplesson_additional_thumbnail_id').val(attachment.id);
            $('#wplesson_additional_thumbnail_container').html('<img src="' + attachment.url + '" style="max-width:100%;" />');
        });
        frame.open();
    });
});

Сохранение данных при сохранении записи

function wplesson_save_additional_thumbnail($post_id) {
    if ( !isset($_POST['wplesson_thumbnails_nonce']) || !wp_verify_nonce($_POST['wplesson_thumbnails_nonce'], basename(__FILE__)) ) {
        return $post_id;
    }
    if ( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE ) {
        return $post_id;
    }
    if ( isset($_POST['wplesson_additional_thumbnail_id']) ) {
        update_post_meta($post_id, '_wplesson_additional_thumbnail_id', intval($_POST['wplesson_additional_thumbnail_id']));
    }
}
add_action('save_post', 'wplesson_save_additional_thumbnail');

Вывод нескольких обложек в шаблоне темы

Чтобы вывести основную и дополнительную обложки в шаблоне, например в single.php, используйте следующий код:

if ( has_post_thumbnail() ) {
    the_post_thumbnail('full');
}
$additional_id = get_post_meta(get_the_ID(), '_wplesson_additional_thumbnail_id', true);
if ( $additional_id ) {
    echo wp_get_attachment_image( $additional_id, 'full' );
}

Так вы получите сразу две обложки для записи — стандартную и дополнительную.

Альтернативы: использование кастомных полей и плагина Advanced Custom Fields

Если нужно более гибкое решение с несколькими изображениями, можно использовать плагин Advanced Custom Fields (ACF). Он позволяет создавать поля типа «Изображение» или «Галерея» и прикреплять к записям любое количество изображений.

Пример поля галереи в ACF и вывод изображений:

$images = get_field('gallery_field_name');
if( $images ) {
    foreach( $images as $image ) {
        echo '<img src="' . esc_url($image['url']) . '" alt="' . esc_attr($image['alt']) . '" />';
    }
}

Это мощное решение, если нужно создавать полноценные галереи и управлять изображениями без ограничений.

Советы по SEO и производительности при использовании нескольких обложек

Использование нескольких обложек увеличивает вес страницы за счет дополнительных изображений. Чтобы избежать проблем с производительностью, рекомендуем:

  • Оптимизировать изображения (сжать без потери качества)
  • Использовать отложенную загрузку (lazy load)
  • Обязательно задавать атрибуты alt для SEO

Для lazy load можно добавить атрибут loading="lazy" к тегам <img> или использовать плагины оптимизации.

Как добавить автоматические редиректы после изменения слага записи в WordPress
17.04.2026
Как удалить редко используемые теги в WordPress
29.12.2025
Как использовать WPCommunity для создания форума на WordPress
02.01.2026
Оптимизация базы данных WordPress: удаление старых и неиспользуемых данных
17.02.2026
Как удалить все комментарии в WordPress с помощью плагинов и кода
18.11.2025