Функция WP_GET_IMAGE_EDITOR(): работа с изображениями в WordPress

# Функция WP_GET_IMAGE_EDITOR()

Функция WP_GET_IMAGE_EDITOR() возвращает экземпляр класса WP_Image_Editor и загружает в него файл изображения.

## Возвращаемое значение

Функция может вернуть либо объект WP_Image_Editor при успешном выполнении, либо объект WP_Error в случае ошибки.

## Использование

```php
wp_get_image_editor( $path, $args );
  • $path (string) (обязательный) — путь к файлу изображения, который нужно загрузить.
  • $args (array) — дополнительные аргументы для получения редактора изображения. По умолчанию: пустой массив.

Примеры

Пример 1: Создание миниатюры изображения

Предположим, у нас есть изображение по пути /wp-content/uploads/2014/02/uka.png (оно находится на нашем сервере). Мы покажем, как создать уменьшенную копию этого изображения с помощью класса WP_Image_Editor.

$file_path = $_SERVER['DOCUMENT_ROOT'] . '/wp-content/uploads/2014/02/uka.png';

// загрузка объекта
$image = wp_get_image_editor( $file_path );

// можно указать URL вместо абсолютного пути:
// $image = wp_get_image_editor( 'http://wp-kama.ru/wp-content/uploads/2014/02/uka.png' );

// обработка изображения
if ( ! is_wp_error( $image ) ) {
    // поворачиваем изображение на 90 градусов
    $image->rotate( 90 );
    // изменяем размер на 80x80
    $image->resize( 80, 80, true );

    // создаем новый файл с тем же именем и добавляем суффикс
    $new_file_path = $image->generate_filename();

    // сохраняем изображение как new_image.png в корне сайта
    $image->save( $new_file_path );
}

Изменения

Функция была введена в версии 3.5.0.

Исходный код функции WP_GET_IMAGE_EDITOR()

Вот как выглядит код функции wp_get_image_editor():

function wp_get_image_editor( $path, $args = array() ) {
    $args['path'] = $path;

    // Если mime тип не задан, пытаемся извлечь его из файла
    if ( ! isset( $args['mime_type'] ) ) {
        $file_info = wp_check_filetype( $args['path']);

        if ( isset( $file_info ) && $file_info['type'] ) {
            $args['mime_type'] = $file_info['type'];
        }
    }

    // Проверка и установка mime типа вывода
    if ( isset( $args['mime_type'] ) ) {
        $output_format = wp_get_image_editor_output_format( $path, $args['mime_type'] );
        if ( isset( $output_format[ $args['mime_type'] ] ) ) {
            $args['output_mime_type'] = $output_format[ $args['mime_type'] ];
        }
    }

    $implementation = _wp_image_editor_choose( $args );

    if ( $implementation ) {
        $editor = new $implementation( $path );
        $loaded = $editor->load();

        if ( is_wp_error( $loaded ) ) {
            return $loaded;
        }

        return $editor;
    }

    return new WP_Error( 'image_no_editor', __( 'Редактор не может быть выбран.' ) );
}

Связанные функции

  • add_image_size() — добавляет новое изображение с заданными размерами.
  • get_post_thumbnail_id() — получает ID миниатюры поста.
  • get_the_post_thumbnail() — получает миниатюру поста.
  • set_post_thumbnail() — устанавливает миниатюру для поста.

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

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *