Как автоматически создать миниатюры для загруженных фото в WordPress

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

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

По умолчанию, при загрузке изображения в WordPress, система создаёт несколько копий изображения разных размеров: миниатюру, средний размер, большой и оригинал. Эти размеры можно настроить в админке через Настройки > Медиафайлы. Тем не менее, иногда требуется дополнительная автоматизация или создание дополнительных кастомных размеров под задачи сайта.

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

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

Создание дополнительных размеров миниатюр с помощью функции add_image_size

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

function wpupload_add_custom_image_sizes() {
    add_image_size('wpupload-thumb-300x200', 300, 200, true);
}
add_action('after_setup_theme', 'wpupload_add_custom_image_sizes');

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

Чтобы вывести миниатюру нужного размера в шаблонах, используйте функцию the_post_thumbnail('wpupload-thumb-300x200') или wp_get_attachment_image_src с указанием размера.

Пример вывода миниатюры в шаблоне

$thumb = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID), 'wpupload-thumb-300x200');
if ($thumb) {
    echo '<img src="' . esc_url($thumb[0]) . '" width="' . $thumb[1] . '" height="' . $thumb[2] . '" alt="" />';
}

Автоматическое создание миниатюр для уже загруженных изображений

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

Популярный плагин для этого — Regenerate Thumbnails. Он позволит быстро пересоздать миниатюры всех изображений в библиотеке.

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

Пример кода для регенерации миниатюр на PHP

function wpupload_regenerate_thumbnails_for_all() {
    $args = array(
        'post_type'      => 'attachment',
        'post_mime_type' => 'image',
        'posts_per_page' => -1,
        'post_status'    => 'inherit',
    );
    $query = new WP_Query($args);
    if ($query->have_posts()) {
        require_once ABSPATH . 'wp-admin/includes/image.php';
        require_once ABSPATH . 'wp-admin/includes/file.php';
        require_once ABSPATH . 'wp-admin/includes/media.php';
        while ($query->have_posts()) {
            $query->the_post();
            $attachment_id = get_the_ID();
            $file = get_attached_file($attachment_id);
            if (file_exists($file)) {
                wp_update_attachment_metadata($attachment_id, wp_generate_attachment_metadata($attachment_id, $file));
            }
        }
        wp_reset_postdata();
    }
}

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

Оптимизация и фильтрация создания миниатюр для экономии ресурсов

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

Например, чтобы отключить создание определённых размеров, можно воспользоваться фильтром intermediate_image_sizes_advanced:

function wpupload_disable_unwanted_image_sizes($sizes) {
    unset($sizes['medium_large']);
    unset($sizes['1536x1536']);
    unset($sizes['2048x2048']);
    return $sizes;
}
add_filter('intermediate_image_sizes_advanced', 'wpupload_disable_unwanted_image_sizes');

Так вы исключите создание ненужных размеров и сэкономите место на диске.

Управление миниатюрами в плагинах и темах

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

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

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

Автоматическое создание миниатюр — ключевой элемент работы с изображениями в WordPress. Для оптимального результата:

  • Настройте необходимые размеры через add_image_size с учётом дизайна сайта.
  • Используйте плагины для регенерации миниатюр, если добавляете новые размеры.
  • Отключайте ненужные размеры, чтобы экономить ресурсы.
  • Интегрируйте создание миниатюр в рабочие процессы, используя хук after_setup_theme и фильтры.

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

Если хотите узнать больше о работе с изображениями и оптимизации загрузки, рекомендуем ознакомиться с продуктами WPGPT и Clearfy Pro для комплексной оптимизации WordPress.

Как автоматически создать миниатюры для загруженных фото в WordPress
04.01.2026
Автоматическое удаление файлов из WooCommerce после отмены заказа
18.05.2026
Как установить ограничение на размер файлов в WordPress при загрузке
10.01.2026
Как использовать WP Remote POST для отправки данных с формы в WordPress
03.03.2026
Как сохранить и загрузить медиафайлы WordPress
22.11.2025

wp upload - это директория в WP для загрузки файлов. Подробнее про загрузку файлов в админку можно почитать на этой странице.