Функция wp_get_image_editor()
предназначена для работы с изображениями в WordPress. Она возвращает экземпляр класса WP_Image_Editor
, загружая в него указанный файл изображения. Этот класс предоставляет методы для редактирования изображений: изменение размеров, повороты, кадрирование и многое другое.
wp_get_image_editor( string $path, array $args = array() ): WP_Image_Editor|WP_Error
Параметры функции
$path
(строка, обязательный) — путь к файлу изображения, который нужно загрузить.$args
(массив, опциональный) — дополнительные параметры для редактора изображений, такие как mime-тип и другие методы. По умолчанию — пустой массив.
Возвращаемое значение
Функция возвращает объект WP_Image_Editor
в случае успеха или объект WP_Error
, если возникла ошибка при загрузке изображения.
Пример 1: Поворот и изменение размера изображения
В этом примере мы загружаем изображение, поворачиваем его на 90 градусов, изменяем его размер и сохраняем результат под новым именем:
$image = wp_get_image_editor( 'example_image.jpg' );
if ( ! is_wp_error( $image ) ) {
// Поворот изображения на 90 градусов
$image->rotate( 90 );
// Изменение размера до 300x300 с обрезкой
$image->resize( 300, 300, true );
// Сохранение изменённого изображения под новым именем
$image->save( 'new_example_image.jpg' );
}
Описание методов класса WP_Image_Editor
Класс WP_Image_Editor
предоставляет множество методов для работы с изображениями:
supports_mime_type( $mime_type )
— проверяет, поддерживает ли редактор указанный MIME-тип.save( $destfilename = null, $mime_type = null )
— сохраняет текущее изображение в файл.resize( $max_w, $max_h, $crop = false )
— изменяет размер изображения с возможностью кадрирования.multi_resize( $sizes )
— создает несколько версий изображения с разными размерами.crop( $src_x, $src_y, $src_w, $src_h, $dst_w = null, $dst_h = null, $src_abs = false )
— кадрирует изображение, задавая исходные и конечные размеры.rotate( $angle )
— поворачивает изображение против часовой стрелки на заданный угол.flip( $horz, $vert )
— переворачивает изображение по горизонтали или вертикали.stream( $mime_type = null )
— выводит изображение в браузер с указанием MIME-типа.get_size()
— получает размеры изображения как массив с ключамиwidth
иheight
.update_size( $width = null, $height = null )
— обновляет размер текущего изображения.set_quality( $quality )
— устанавливает качество сжатия JPEG-изображений.get_output_format( $filename = null, $mime_type = null )
— определяет MIME-тип и расширение файла.generate_filename( $suffix = null, $dest_path = null, $extension = null )
— генерирует имя файла с указанным суффиксом.get_suffix()
— возвращает суффикс для названия файла на основе его размеров.make_image( $filename, $function, $arguments )
— сохраняет или обрабатывает изображение с помощью указанных функций (например,imagejpeg()
).get_mime_type( $extension = null )
— получает MIME-тип по расширению файла.get_extension( $mime_type = null )
— получает расширение по MIME-типу.
Пример 2: Создание уменьшенной копии изображения
Предположим, у нас есть изображение, расположенное по пути /wp-content/uploads/2024/10/sample.png
. Следующий пример демонстрирует, как загрузить это изображение, уменьшить его и сохранить в новой директории:
$file_path = $_SERVER['DOCUMENT_ROOT'] . '/wp-content/uploads/2024/10/sample.png';
// Загружаем изображение в редактор
$image = wp_get_image_editor( $file_path );
if ( ! is_wp_error( $image ) ) {
// Уменьшение размера до 100x100 с обрезкой
$image->resize( 100, 100, true );
// Генерация нового имени файла с суффиксом
$new_file_path = $image->generate_filename( 'small', $_SERVER['DOCUMENT_ROOT'] . '/wp-content/uploads/2024/10/' );
// Сохранение уменьшенного изображения
$image->save( $new_file_path );
}
Пример 3: Работа с несколькими размерами изображений
Класс WP_Image_Editor
также позволяет создавать несколько версий изображения с разными размерами за один вызов:
$file_path = '/wp-content/uploads/2024/10/landscape.png';
$image = wp_get_image_editor( $file_path );
if ( ! is_wp_error( $image ) ) {
// Создание нескольких размеров
$sizes = array(
array( 'width' => 800, 'height' => 600, 'crop' => true ),
array( 'width' => 400, 'height' => 300, 'crop' => false ),
);
// Генерация изображений с разными размерами
$resized_images = $image->multi_resize( $sizes );
foreach ( $resized_images as $resized_image ) {
echo 'Сохранено изображение: ' . $resized_image['file'] . PHP_EOL;
}
}
Заключение
Функция wp_get_image_editor()
и класс WP_Image_Editor
обеспечивают мощный инструмент для редактирования изображений в WordPress. С их помощью можно легко изменять размеры, поворачивать, обрезать и сохранять изображения с различными параметрами. Это делает их полезными для создания миниатюр, оптимизации изображений и других задач, связанных с обработкой графики на сайте.