Для автоматической конвертации изображений в форматы WebP или AVIF без использования плагинов и внесения изменений на хостинге, вы можете использовать следующий подход:
1. Создайте функцию в файле functions.php вашей темы или создайте плагин, который будет выполнять конвертацию изображений. Например, вот функция для конвертации изображений в формат WebP:
```php
function convert_image_to_webp($imagePath) {
$imageInfo = pathinfo($imagePath);
$webpPath = $imageInfo['dirname'] . '/' . $imageInfo['filename'] . '.webp';
$image = imagecreatefromjpeg($imagePath); // Можете использовать другие функции в зависимости от формата изображения
imagewebp($image, $webpPath);
imagedestroy($image);
return $webpPath;
}
```
2. Далее, вам нужно проверять, поддерживает ли браузер форматы WebP или AVIF, и при необходимости подставлять оригинальное изображение. Для этого добавьте следующий код в файл functions.php вашей темы:
```php
function replace_image_with_webp($content) {
$doc = new DOMDocument();
$doc->loadHTML($content);
$images = $doc->getElementsByTagName('img');
foreach ($images as $image) {
$originalSrc = $image->getAttribute('src');
$webpSrc = convert_image_to_webp($originalSrc);
// Проверяем поддерживает ли браузер формат WebP
if(strstr($_SERVER['HTTP_ACCEPT'], 'image/webp')) {
$image->setAttribute('src', $webpSrc);
}
}
return $doc->saveHTML();
}
add_filter('the_content', 'replace_image_with_webp');
```
Этот код будет автоматически конвертировать все изображения на вашем сайте в формат WebP и подставлять их в HTML код соответствующим образом.
Таким образом, у вас будет fallback на оригинальное изображение в форматах JPEG или PNG, если браузер не поддерживает формат WebP или AVIF.