Как отключить авторотацию изображений в WordPress

Автоматическая ротация изображений в WordPress — это полезная функция, которая корректирует ориентацию фотографий на основе EXIF-метаданных. Однако в некоторых случаях эта функция может приводить к неожиданным результатам, особенно если изображения уже отредактированы или содержат некорректные данные EXIF. В этой статье мы подробно рассмотрим, как отключить авторотацию изображений в WordPress, а также приведём примеры кода и рекомендации по плагинам.

Почему отключать авторотацию изображений в WordPress

По умолчанию WordPress использует библиотеку imagick или GD для обработки изображений. При загрузке фотографий с камер или телефонов система автоматически поворачивает их в соответствии с ориентацией, заданной в EXIF. Однако бывают ситуации, когда:

  • Функция ротации приводит к нежелательным перекрутам;
  • Изображения сохраняются с уже правильной ориентацией, и повторная ротация ухудшает качество;
  • Отсутствуют или повреждены EXIF-данные, что вызывает неправильное отображение.

В таких случаях логично отключить автоматическую ротацию и взять контроль над обработкой изображений в свои руки.

Как отключить авторотацию изображений через фильтр WordPress

Для отключения авторотации потребуется использовать фильтр WordPress wp_image_editors, чтобы убрать поддержку библиотеки imagick, которая отвечает за автоматическую ротацию. Вместо неё можно использовать GD, который не поддерживает авторотацию по EXIF.

Добавьте следующий код в файл functions.php вашей темы или в отдельный плагин:

function wpkit_disable_imagick_autorotate($editors) {
    // Убираем Imagick из списка редакторов изображений
    $gd_editor = 'WP_Image_Editor_GD';
    $editors = array_diff($editors, array('WP_Image_Editor_Imagick'));
    // Проверяем, что GD доступен
    if (in_array($gd_editor, $editors)) {
        return array($gd_editor);
    }
    return $editors;
}
add_filter('wp_image_editors', 'wpkit_disable_imagick_autorotate');

Этот код отключит использование Imagick и переключит обработку изображений на GD, что автоматически отключит авторотацию.

Плюсы и минусы такого подхода

Плюсы:

  • Простое решение без использования дополнительных плагинов;
  • Полный контроль над обработкой изображений;
  • Отмена автоматической ротации, если она мешает.

Минусы:

  • GD менее функционален по сравнению с Imagick (меньше возможностей для обработки);
  • Может ухудшиться качество сжатия и преобразований;
  • Если сервер не поддерживает GD, решение не сработает.

Использование плагинов для отключения авторотации

Если вы предпочитаете готовое решение, есть несколько плагинов, которые позволяют контролировать поведение обработки изображений, включая авторотацию:

  • Disable Image Rotation — простой плагин, который отключает авторотацию без сложных настроек.
  • Clearfy Pro — мощный инструмент оптимизации, который позволяет отключать ряд функций WordPress, в том числе автоматическую обработку изображений. Рекомендуется для комплексной оптимизации сайта.

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

Обработка изображений с отключённой авторотацией своими силами

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

function wpkit_manual_image_rotation($file) {
    $exif = @exif_read_data($file);
    if (!$exif || !isset($exif['Orientation'])) {
        return;
    }
    $orientation = $exif['Orientation'];
    $image = imagecreatefromjpeg($file);
    switch ($orientation) {
        case 3:
            $image = imagerotate($image, 180, 0);
            break;
        case 6:
            $image = imagerotate($image, -90, 0);
            break;
        case 8:
            $image = imagerotate($image, 90, 0);
            break;
        default:
            return;
    }
    imagejpeg($image, $file);
    imagedestroy($image);
}

add_action('wp_handle_upload', 'wpkit_manual_image_rotation');

Этот код автоматически поворачивает JPEG-изображения при загрузке в соответствии с ориентацией EXIF, когда стандартная авторотация отключена. Такое решение даёт полный контроль над процессом и позволяет избежать ошибок.

Особенности и рекомендации

Для корректной работы функции exif_read_data необходимо, чтобы на сервере была включена поддержка EXIF. Код обрабатывает только JPEG-изображения, так как другие форматы, например PNG, не содержат EXIF.

Обратите внимание, что при повторном сохранении изображений с помощью GD может немного снижаться качество, поэтому лучше оптимизировать изображения заранее.

Что делать, если нужна частичная авторотация

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

function wpkit_custom_image_editors($editors, $image) {
    // Пример: отключаем Imagick только для изображений больше 2 МБ
    $file = isset($image->file) ? $image->file : '';
    if ($file && filesize($file) > 2 * 1024 * 1024) {
        return array('WP_Image_Editor_GD');
    }
    return $editors;
}
add_filter('wp_image_editors', 'wpkit_custom_image_editors', 10, 2);

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

WooCommerce: автоматическое изменение стоимости товаров при оплате с поддержкой купонов
26.05.2026
Оптимизация работы с кэшем в WordPress: практические советы и примеры
12.01.2026
Как разделить комментарии на страницы в WordPress
29.01.2026
Оптимизация базы данных WordPress без повышения нагрузки на сервер
11.12.2025
Как создать массовое сообщение в WordPress с помощью PHP
16.11.2025