WEB-Программист
Переключить навигацию

Язык

  • Українська
  • Русский
  • Polski
  • Українська
  • Русский
  • Polski
Связаться с нами

Поиск

  • Книги
  • JavaScript
  • HTML и CSS
  • Другие темы
  • SEO
  • WordPress
  • Дизайн
  • PHP
  • Laravel
  • React js
  • SQL и языки запросов
  • Android
  • Yii PHP framework
  • Без категорії
  • Шрифты
  • Статьи
  • Laravel
  • WordPress
  • Phyton
  • Темы Wordpress
  • Интернет магазин
  • JavaScript
  • © 2015-2026 Andrii Beznosko

  • Хостинг CityHost

Миниатюры в WordPress. Как добавить поддержку миниатюр в WordPress и настроить их отображение

  • Описание
  • Описание/Скачать
  • Обсуждения
  • Пожаловаться

Миниатюры в WordPress. Как добавить поддержку миниатюр в WordPress и настроить их отображение

Миниатюры в WordPress, которые также часто называют featured image или изображением записи, — это один из базовых элементов оформления современной темы. Именно они чаще всего выводятся в списках статей, карточках записей, категориях, архивах, на главной странице сайта, в блоках похожих материалов и в социальных превью. Если тема работает с миниатюрами неправильно, интерфейс быстро начинает выглядеть неаккуратно: карточки имеют разную высоту, изображения растягиваются или вообще не выводятся. В этой статье подробно разберём, как включить поддержку миниатюр в WordPress, как настроить собственные размеры изображений, как правильно выводить featured image в шаблонах и как весь этот механизм устроен внутри ядра. Отдельно рассмотрим, где WordPress хранит связь между записью и изображением в базе данных, какие метаданные создаются при загрузке файла и почему после изменения размеров недостаточно просто поправить код в functions.php.
Важно понимать: миниатюра записи в WordPress — это не просто “любая прикреплённая картинка”, а конкретный attachment, который назначается записи как featured image.

Зачем теме нужна поддержка миниатюр

Когда тема WordPress объявляет поддержку миниатюр, она сообщает ядру, что для записей, страниц или кастомных типов записей нужно показывать в админке блок выбора featured image, а шаблоны смогут получать это изображение через стандартные функции WordPress. Обычно миниатюры используются в следующих местах:
  • на страницах архива блога;
  • в карточках статей на главной;
  • в слайдерах и hero-блоках;
  • на страницах категорий и тегов;
  • в кастомных типах записей, например “Книги”, “Товары”, “Новости”, “Портфолио”.
Базовое подключение выполняется через add_theme_support('post-thumbnails'). Лучше всего делать это на хуке after_setup_theme, чтобы тема корректно зарегистрировала свою функциональность ещё на этапе инициализации.
<?php
add_action('after_setup_theme', function () {
    add_theme_support('post-thumbnails');
});
Это минимальная стартовая конфигурация. После добавления такого кода в админке WordPress появится возможность назначать миниатюру записи, а в шаблонах можно будет использовать стандартные функции вроде has_post_thumbnail(), get_post_thumbnail_id() и the_post_thumbnail().

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

В реальном проекте не всегда нужно включать featured image для всех сущностей. Например, для обычных постов и кастомного типа book это полезно, а для некоторых служебных страниц — нет. В этом случае лучше явно перечислить те post type, которые действительно должны поддерживать миниатюры.
<?php
add_action('after_setup_theme', function () {
    add_theme_support('post-thumbnails', ['post', 'page', 'book']);
});
Такой подход особенно удобен в кастомных темах с большим количеством нестандартных сущностей. Это упрощает поддержку проекта и сразу даёт понять, где именно featured image реально используется.

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

Само подключение поддержки миниатюр — это только первый шаг. Далее нужно определить, в каких размерах изображения будут использоваться в теме. Для этого WordPress предоставляет два основных инструмента: set_post_thumbnail_size() для базового размера featured image и add_image_size() для любых дополнительных кастомных размеров.
<?php
add_action('after_setup_theme', function () {
    add_theme_support('post-thumbnails');

    // Базовый размер для the_post_thumbnail()
    set_post_thumbnail_size(320, 220, true);

    // Дополнительные размеры для разных зон шаблона
    add_image_size('card-thumb', 420, 280, true);
    add_image_size('hero-thumb', 1280, 720, true);
    add_image_size('sidebar-thumb', 120, 120, true);
});
Третий параметр true означает жёсткое кадрирование. Это полезно для карточек, где требуется одинаковая геометрия у всех превью. Если указать false, WordPress будет стараться сохранить пропорции изображения, и тогда высота разных карточек может отличаться. На практике лучше сразу продумать, какие размеры действительно нужны в теме. Например, для каталога книг может понадобиться вертикальное изображение обложки, а для блога — горизонтальное превью. Один универсальный размер почти всегда проигрывает набору нескольких целевых размеров.
Обрати внимание: если новые размеры были добавлены уже после того, как изображения раньше загружались в медиабиблиотеку, WordPress не создаст эти файлы автоматически задним числом. Для старых вложений обычно требуется регенерация миниатюр.

Вывод миниатюры в цикле WordPress

Самый частый сценарий — показать изображение в архиве или на главной странице блога. Здесь важно не просто вызвать the_post_thumbnail(), но и проверить, существует ли featured image, чтобы не получить пустую зону или сломанную вёрстку.
<article class="post-card">
    <a class="post-card__image" href="<?php the_permalink(); ?>">
        <?php if (has_post_thumbnail()) : ?>
            <?php the_post_thumbnail('card-thumb', ['class' => 'img-responsive']); ?>
        <?php else : ?>
            <img src="<?php echo esc_url(get_template_directory_uri() . '/assets/img/no-image.jpg'); ?>" alt="<?php the_title_attribute(); ?>" class="img-responsive">
        <?php endif; ?>
    </a>

    <h2 class="post-card__title">
        <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
    </h2>

    <div class="post-card__excerpt">
        <?php the_excerpt(); ?>
    </div>
</article>
Здесь сразу видно правильную практику: есть проверка наличия миниатюры, предусмотрена fallback-картинка, а само изображение выводится уже в заранее подготовленном размере card-thumb. Это заметно лучше, чем тянуть full-size и уменьшать его только через CSS.

Вывод миниатюры на странице записи

На странице отдельного материала логика может быть немного другой. Здесь обычно нужен больший размер, дополнительные HTML-атрибуты и отдельный контейнер для стилизации. Удобно передавать массив атрибутов прямо вторым параметром в функцию.
<?php if (has_post_thumbnail()) : ?>
    <div class="post-cover">
        <?php
        the_post_thumbnail('hero-thumb', [
            'class'   => 'img-responsive center-block',
            'loading' => 'lazy',
            'alt'     => get_the_title(),
        ]);
        ?>
    </div>
<?php endif; ?>
Такой вариант особенно удобен для контентных сайтов, где featured image стоит над заголовком или сразу после него. Если же миниатюра нужна только для архивов и превью, на странице полного материала её можно вообще не выводить — всё зависит от логики темы.

Как миниатюры работают внутри ядра WordPress

Теперь самое интересное — внутренняя механика. Когда ты загружаешь изображение в медиабиблиотеку, WordPress создаёт отдельную запись типа attachment. То есть картинка — это не просто файл на диске, а полноценная запись в таблице wp_posts со своим ID, MIME-типом, датой создания и другими служебными данными. Когда это изображение назначается как featured image для статьи, WordPress записывает в таблицу wp_postmeta в метаполе _thumbnail_id ID attachment-записи. Именно поэтому одна и та же картинка теоретически может использоваться как миниатюра для разных материалов, а также как обычное вложение. Далее вступает в работу генерация метаданных. При загрузке WordPress анализирует исходный файл, вычисляет размеры, создаёт набор промежуточных копий и сохраняет служебную информацию в метаполе attachment’а. Именно там лежат пути к промежуточным файлам, их ширина, высота, MIME-тип и дополнительный image meta. Когда тема запрашивает, например, card-thumb, ядро не “обрезает на лету” оригинал, а получает уже готовую версию нужного размера.
<?php
$post_id      = get_the_ID();
$thumbnail_id = get_post_thumbnail_id($post_id);
$meta         = wp_get_attachment_metadata($thumbnail_id);

echo '<pre>';
print_r([
    'post_id'      => $post_id,
    'thumbnail_id' => $thumbnail_id,
    'meta'         => $meta,
]);
echo '</pre>';
Такой отладочный фрагмент хорошо показывает связь между постом, его миниатюрой и attachment metadata. В массиве $meta ты увидишь исходный файл и секцию sizes, где перечислены все созданные версии изображения. Если описать всю цепочку максимально просто, она выглядит так:
  1. ты загружаешь файл в медиабиблиотеку;
  2. WordPress создаёт attachment как отдельную запись;
  3. ядро генерирует дополнительные размеры изображения;
  4. метаданные этих размеров сохраняются у attachment;
  5. для конкретной записи в _thumbnail_id сохраняется ID attachment;
  6. шаблон через the_post_thumbnail() получает правильное изображение нужного размера.

Почему миниатюра иногда не выводится

Есть несколько типичных причин. Первая — тема не вызвала add_theme_support('post-thumbnails'). Вторая — для записи фактически не назначено featured image. Третья — в шаблоне используется неправильный size или кастомный размер, который не был сгенерирован для старых файлов. Четвёртая — вёрстка или CSS скрывают изображение, хотя HTML уже присутствует на странице. Ещё одна распространённая ошибка — тянуть полный размер картинки в архивный список и надеяться, что браузер или стили “как-нибудь подгонят”. Это лишняя нагрузка на страницу, хуже показатели производительности и больше трафика, особенно если на странице выводится много записей.

CSS для аккуратного отображения миниатюр

Даже если PHP-часть настроена правильно, конечный результат сильно зависит от стилей. Для ровных карточек блога обычно достаточно сделать фиксированный контейнер, скрыть всё лишнее и заставить изображение заполнять область без деформации.
.post-card__image {
    display: block;
    overflow: hidden;
    margin-bottom: 15px;
    background: #f5f5f5;
}

.post-card__image img {
    display: block;
    width: 100%;
    height: 280px;
    object-fit: cover;
}

.post-cover {
    margin: 0 0 25px;
}

.post-cover img {
    display: block;
    width: 100%;
    height: auto;
}
Если сайт должен работать в среде, где object-fit использовать нежелательно, можно пойти другим путём: применять пропорциональные контейнеры, background-image или жёсткие серверные кропы нужного формата. Но для большинства современных проектов такого CSS вполне достаточно.

Как кастомизировать HTML миниатюры через фильтр

Иногда стандартного HTML от the_post_thumbnail() недостаточно. Например, нужно автоматически добавить собственный класс, обёртку, data-атрибуты или особое поведение для lazy-loading. В таких случаях выручает фильтр HTML миниатюры.
<?php
add_filter('post_thumbnail_html', function ($html, $post_id, $thumbnail_id, $size, $attr) {
    if (is_admin()) {
        return $html;
    }

    return '<div class="entry-thumbnail">' . $html . '</div>';
}, 10, 5);
Это уже тот уровень, где миниатюры становятся не просто “картинкой в шаблоне”, а частью архитектуры темы. Такой подход удобен тем, что позволяет централизованно контролировать вывод и не размазывать мелкие правки по множеству файлов.

Итог

Поддержка миниатюр в WordPress состоит из нескольких слоёв: регистрация функции в теме, создание нужных image sizes, правильный вывод в шаблонах и понимание того, как featured image хранится в базе и обрабатывается ядром. Если настроить это аккуратно, тема будет выглядеть стабильнее, работать быстрее и останется предсказуемой для дальнейшей поддержки. Лучшая практика — не ограничиваться одним вызовом the_post_thumbnail(), а продумать систему размеров, fallback-изображение, CSS для карточек и отладку через get_post_thumbnail_id() и wp_get_attachment_metadata(). Именно такой подход позволяет получить не просто “картинку в записи”, а полноценную, технически грамотную работу с миниатюрами в WordPress.

Хостинг GM Host
Автор: Взято с других источников
Год издания: 2012
Категория: Главная » Статьи » Миниатюры в WordPress. Как добавить поддержку миниатюр в WordPress и настроить их отображение
Издатель: Автор
Язык: Русский
Статус: Для начинающих программистов
Формат: text
Количество страниц: 20
Ссылка для скачивания: Download from Cloud Mail.ru
Добавил: Апр 20, 2026 15:15 Andrii

Все книги, представленные на этом сайте, предназначены только для ознакомления. Любое использование допускается только в обзорных целях. Если вы планируете дальнейшее использование, приобретите их у правообладателей. Администрация сайта не несёт ответственности за использование этих материалов. WEB-Программист

Всего комментариев: 0
Оставить комментарий Отменить ответ

Ваш email не будет опубликован.

Все книги, представленные на этом сайте, предназначены только для ознакомления. Любое использование допускается только в обзорных целях. Если вы планируете дальнейшее использование, приобретите их у правообладателей. Администрация сайта не несёт ответственности за использование этих материалов. WEB-Программист

Все книги, представленные на этом сайте, предназначены только для ознакомления. Любое использование допускается только в обзорных целях. Если вы планируете дальнейшее использование, приобретите их у правообладателей. Администрация сайта не несёт ответственности за использование этих материалов. WEB-Программист

Книги из этой категории:
Делаем сайт на WordPress еще лучше: правильная seo-оптимизация и широкий выбор плагинов для разных задач

Делаем сайт на WordPress еще лучше: правильная seo-оптимизация и широкий выбор плагинов для разных задач

Десятилетию WordPress посвящается. Поскольку движок WordPress все еще считается ведущей блоговой платформой и в сравнении с популярными блог-сервисами (livejournal.com, liveinternet.ru), ...

Смотреть

Как получить текущую таксономию у WordPress с помощью get_term_by()

Как получить текущую таксономию у WordPress с помощью get_term_by()

Как получить текущую таксономию в WordPress с помощью get_term_by() В WordPress таксономии (например, категории или метки) часто используются для фильтрации ...

Смотреть

При обновлении просит FTP доступ WordPress

При обновлении просит FTP доступ WordPress

Часто при установке плагинов на свой сайт (особенно на localhost) Wordpress прости дать ФТП доступ Это часто раздражает. Что б ...

Смотреть

Вся правда о functions.php

Вся правда о functions.php

Одной из самых частых ошибок начинающих разработчиков WordPress — это использование файла темы functions.php не по назначению. В данной статье ...

Смотреть

Как раскрутить блог на WordPress?

Как раскрутить блог на WordPress?

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

Смотреть

Видеокурс по SEO-оптимизации WordPress

Видеокурс по SEO-оптимизации WordPress

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

Смотреть

Наши партнеры
GM Host Banner
Миниатюры в WordPress. Как добавить поддержку миниатюр в WordPress и настроить их отображение
Миниатюры в WordPress. Как добавить поддержку миниатюр в WordPress и настроить их отображение

Смотрите также:

Делаем сайт на WordPress еще лучше: правильная seo-оптимизация и широкий выбор плагинов для разных задач

Десятилетию WordPress посвящается. Поскольку движок WordPress все еще считается ведущей ...

4 способа задать цикл loop WordPress

Здравствуй, дорогой читатель! Сегодня хочу продолжить пополнять копилку разработчика WordPress ...

Миниатюры в WordPress. Как сделать поддержку миниатюр в WordPress и настроить отображение

Проверяем поддержку миниатюр в WordPress Для начала нужно убедиться в ...

Вся правда о functions.php

Вся правда о functions.php Файл functions.php в WordPress давно окружён ...

Введение в глобальные переменные WordPress

Начинаем небольшую серию статей по глобальные переменные WordPress. В данном ...

Как раскрутить блог на WordPress?

Вы создаете свой блог на системе WordPress и конечно же ...

Связаться с нами

- Премиум темы и плагины WP Star бесплатно -

We use cookies on our website to give you the most relevant experience by remembering your preferences and repeat visits. By clicking “Accept”, you consent to the use of ALL the cookies.
Cookie settingsACCEPT
Manage consent

Privacy Overview

This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary
Always Enabled
Necessary cookies are absolutely essential for the website to function properly. These cookies ensure basic functionalities and security features of the website, anonymously.
CookieDurationDescription
cookielawinfo-checbox-analytics11 monthsThis cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Analytics".
cookielawinfo-checbox-functional11 monthsThe cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Functional".
cookielawinfo-checbox-others11 monthsThis cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Other.
cookielawinfo-checkbox-necessary11 monthsThis cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Necessary".
cookielawinfo-checkbox-performance11 monthsThis cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Performance".
viewed_cookie_policy11 monthsThe cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not user has consented to the use of cookies. It does not store any personal data.
Functional
Functional cookies help to perform certain functionalities like sharing the content of the website on social media platforms, collect feedbacks, and other third-party features.
Performance
Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.
Analytics
Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics the number of visitors, bounce rate, traffic source, etc.
Advertisement
Advertisement cookies are used to provide visitors with relevant ads and marketing campaigns. These cookies track visitors across websites and collect information to provide customized ads.
Others
Other uncategorized cookies are those that are being analyzed and have not been classified into a category as yet.
SAVE & ACCEPT