Symelo Image Optimizations

  • Версия 1.0.1
  • WordPress 6.4+
  • PHP 7.4+
  • Тествана до 7.1
Overview: спестеното място, медийната библиотека с един поглед и масовата оптимизация.

Описание

PRO

Symelo Image Optimizations ProБезплатна добавка

Безплатна добавка. Добавя допълнителни възможности като cwebp, avifenc, jpegoptim, oxipng и други енкодери.

Symelo Image Optimizations прави изображенията по-малки, без да променя как изглежда сайтът ви. Всичко се случва на собствения ви сървър: изображенията никога не се качват във външна услуга.

  • Автоматично компресиране при качване, във фонов режим, и масова оптимизация на съществуващата медийна библиотека, която продължава и след като затворите раздела в браузъра.
  • Копия в WebP и AVIF до всяко изображение, които се предоставят чрез тагове <picture> (работи с всеки кеш и CDN) или чрез сървърни правила.
  • Нива на компресия: Lossless (всеки пиксел остава непроменен, включително в копията в WebP), Balanced, Aggressive или Custom с отделно качество за всеки формат. Файлове, които вече са добре компресирани, никога не се компресират повторно.
  • Преоразмерява твърде големите качени изображения до максимална ширина и височина.
  • Премахва метаданните (EXIF, GPS местоположение, данни за фотоапарата), като запазва цветовите профили и ориентацията.
  • Запазва оригиналите, така че всяко изображение или цялата библиотека може да бъде възстановена.
  • Отложено зареждане чрез вградената поддръжка в браузъра, разширено и за изображенията и вграденото съдържание от темата и плъгините.
  • Адаптивни изображения: допълнителни размери за точките на прекъсване и точни атрибути sizes според оформлението на темата ви.
  • Изображения извън медийната библиотека: папките на темите и плъгините.
  • Background speed (скорост на фоновата обработка): Fast, Normal или Gentle. Gentle е подходящ за малки сървъри: работа на кратки серии с паузи, а масовата обработка изчаква, докато сървърът е натоварен, така че посетителите не забелязват нищо.
  • Работи с библиотеките за изображения, с които разполага PHP на вашия сървър (Imagick и GD, които използва и WordPress), и показва точно какво се поддържа; вие избирате механизма за всяка задача.

Symelo Image Optimizations е създаден от Symelo LTD.

Изисквания към сървъра

  • PHP 7.4 или по-нова версия с разширението Imagick или GD (които използва и WordPress). Те вършат цялата работа; плъгинът не стартира и не изтегля програми.
  • Поддръжката на WebP и AVIF зависи от това как са компилирани тези библиотеки: AVIF в GD изисква PHP 8.1 или по-нова версия. Разделът Engines показва какво поддържа сървърът ви.
  • Компресирането на PDF не е налично в този плъгин: Imagick и GD не могат да компресират PDF файлове, затова опцията се показва като недостъпна.

Механизми за обработка

Плъгинът открива какво предлага PHP на сървъра и избира най-добрия вариант за всяка задача: първо Imagick (запазва цветовите профили и обработва CMYK и 16-битови изображения), след това GD. За JPEG, PNG, WebP, AVIF и преоразмеряването можете сами да изберете механизма в раздела Engines.

Всичко, което сървърът не може да направи, се показва като недостъпно, заедно с причината. Версиите на библиотеките с известни проблеми със сигурността се посочват в раздела Overview и в Здраве на сайта.

Сигурност

  • Файлове се променят само в uploads, wp-content и избраните от вас папки; символните връзки не могат да водят извън тях. Форматите се разпознават по съдържанието на файловете, никога по имената им. ImageMagick винаги получава изрично зададен декодер и ограничения на ресурсите.
  • Запазените оригинали са защитени с файлове .htaccess. При Nginx разделът Delivery показва правилата, които трябва да добавите, а Здраве на сайта предупреждава, ако запазените оригинали могат да бъдат изтеглени.
  • Всяко действие в администрацията проверява правата и nonce кода; фоновият процес приема единствено таен ключ, уникален за сайта.

Външни услуги

Този плъгин не изпраща данни към никаква външна услуга. Изображенията се оптимизират на собствения ви сървър.

Той изпраща HTTP заявки само към собствения ви сайт:

  • Фонова обработка: всяко фоново изпълнение се стартира с кратка заявка към wp-admin/admin-ajax.php на сайта ви, която носи таен ключ, уникален за сайта (с WP-Cron като резервен вариант).
  • Тест на доставянето (когато натиснете „Test now“ или изберете Server rules): заявява малко тестово изображение от uploads/symelo-images/public/, а при доставяне чрез <picture> и началната ви страница.
  • Проверка за поверителност в Здраве на сайта: заявява малък тестов файл от uploads/symelo-images/backups/, за да провери, че запазените оригинали не могат да бъдат изтеглени.

Разделът Support съдържа връзки към symelo.com и връзка за имейл; нищо не се изпраща, освен ако не ги натиснете.

За разработчици

Филтри: symelo_images_capability (екранът с настройки, масовата оптимизация и REST API; за оптимизиране и възстановяване на отделни изображения в медийната библиотека е достатъчно правото за редактиране на съответното изображение, така че авторите могат да оптимизират собствените си качени файлове), symelo_images_engine_order, symelo_images_max_pixels, symelo_images_max_bytes, symelo_images_imagick_limits, symelo_images_pace, symelo_images_worker_budget, symelo_images_dispatch_args, symelo_images_skip_page, symelo_images_more_from_symelo, symelo_images_tabs, symelo_images_warnings, symelo_images_notes, symelo_images_system_info, symelo_images_rest_status.

Действия: symelo_images_loaded, symelo_images_register_engines (добавяне на механизми с $engines->add()), symelo_images_file_optimized, symelo_images_engines_tab, symelo_images_tab_{$slug}.

Разширяване на плъгина: механизмите имплементират Symelo\Images\Engines\EngineInterface (наследяват AbstractEngine) и се регистрират чрез symelo_images_register_engines; всеки посочва кои задачи може да изпълнява на този сървър и задава ранг за всяка задача, по който се определя автоматичният ред. Добавките проверяват SYMELO_IMAGES_API_VERSION (1.0). Файлът docs/extending.md на плъгина описва всеки хук, договора за механизмите и правилата за версиите.

Константи: SYMELO_IMAGES_DELIVERY (picture, rewrite, none), SYMELO_IMAGES_WORKER_SPEED (fast, normal, gentle).

REST API (за администратори): /wp-json/symelo-images/v1/ status, settings, optimize, restore, attachments/{id}, bulk, worker, delivery/test, folders, maintenance.

WP-CLI: wp symelo-images status|optimize|restore|run|folders. wp symelo-images run --paced следва настройката Background speed (паузи и проверки на натоварването) и е предназначена за системни cron задачи на малки сървъри.

Добавете класа skip-lazy към изображение, за да го изключите от отложеното зареждане, и no-picture, за да го изключите от доставянето чрез <picture>.

Екранни снимки

  1. Overview: спестеното място, медийната библиотека с един поглед и масовата оптимизация.

    Overview: спестеното място, медийната библиотека с един поглед и масовата оптимизация.

  2. Compression: ниво, формати, преоразмеряване и метаданни.

    Compression: ниво, формати, преоразмеряване и метаданни.

  3. Delivery: доставяне на WebP/AVIF, отложено зареждане и адаптивни изображения.

    Delivery: доставяне на WebP/AVIF, отложено зареждане и адаптивни изображения.

  4. Медийната библиотека показва колко е спестено за всяко изображение.

    Медийната библиотека показва колко е спестено за всяко изображение.

Документация

Инсталиране

  1. В wp-admin отидете в Разширения → Добавяне на разширение, потърсете „Symelo Image Optimizations“, след това натиснете „Инсталиране“ и „Активиране“. (Или качете .zip файла на плъгина от Разширения → Добавяне на разширение → Качване на разширение.)
  2. Отидете в Медия → Image Optimizations. Разделът Overview показва какво може сървърът ви за всяка задача (JPEG, PNG, WebP, AVIF, преоразмеряване).
  3. Отсега нататък новите качени изображения се оптимизират автоматично. За да оптимизирате вече наличните изображения, натиснете „Optimize all images“ в раздела Overview. Можете да затворите страницата; работата продължава във фонов режим.
  4. По желание: прегледайте раздела Compression (препоръчва се Balanced) и използвайте „Test now“ в раздела Delivery, за да проверите дали се предоставят WebP и AVIF.

Ако WebP или AVIF се показва като недостъпен, помолете хостинг доставчика си да го включи в Imagick или GD (AVIF в GD изисква PHP 8.1 или по-нова версия). Разделът Engines показва какво може всяка библиотека.

Въпроси

Сървърът ми е малък. Ще забави ли масовата оптимизация сайта?

Изберете Медия → Image Optimizations → Advanced → Background speed → Gentle. Тогава масовата обработка се изпълнява на кратки серии с паузи, с най-нисък приоритет, и изчаква, докато сървърът е натоварен. Новите качени изображения пак се оптимизират веднага. Ако изпълнявате опашката от системна cron задача, използвайте wp symelo-images run --paced --max-seconds=240, за да се спазват и тези паузи.

Трябва ли страницата да остане отворена по време на масовата оптимизация?

Не. Работата се изпълнява във фонов режим на кратки стъпки. Ако сървърът ви блокира заявките към самия себе си и WP-Cron е изключен, изпълнявайте wp symelo-images run --paced от системна cron задача.

Мога ли да отменя всичко?

Да, стига „Keep the originals“ да е включено: възстановявайте отделни изображения в медийната библиотека или всичко наведнъж от раздела Advanced.

Защо AVIF е недостъпен?

Imagick и GD на сървъра ви не могат да записват AVIF. Помолете хостинг доставчика си за PHP 8.1 или по-нова версия с поддръжка на AVIF в GD или за Imagick, компилиран с поддръжка на AVIF. Разделът Engines показва какво може всяка библиотека.

Може ли плъгинът да компресира PDF файлове?

Не. Imagick и GD не могат да компресират PDF файлове, затова компресирането на PDF се показва като недостъпно, а PDF файловете остават непроменени.

Стартира ли или изтегля ли плъгинът програми?

Не. Той използва само библиотеките за изображения на PHP (Imagick и GD), които използва и WordPress.

Изпраща ли плъгинът изображенията или данните ми някъде?

Не. Цялото компресиране и конвертиране се извършва на вашия сървър, а плъгинът изпраща заявки само към собствения ви сайт (вижте „Външни услуги“ по-горе).

Всички версии

  1. 1.0.1ПоследнаWordPress 6.4+ · PHP 7.4+ZIP · 191 KB
    • Поправка: на сайтове с HTTPS изображенията, свързани със стар адрес с http:// (например в по-стари публикации), вече не изчезват, когато получат WebP/AVIF източници. Браузърите блокират източниците с http:// на защитени страници, затова източниците вече винаги използват https://.

    SHA-256 6da179c3eaab8c4312590c69dfac713d76e626fb7c9df10673d1d6b339772826

  2. 1.0.0WordPress 6.4+ · PHP 7.4+ZIP · 190 KB
    • Първо издание.

    SHA-256 108c05e0846ecaa3fb92256fc040d5e02473f07bf390a1e00afa3ecec0211584