@klekovkinandrey

Как вставить через медиа в wordpress webp?

Нужно через админку вставлять картинки в формате webp
кидает ошибку
Это изображение не может быть обработано веб-сервером. Перед загрузкой конвертируйте его в JPEG или PNG.

нашел такой хук, не помогает
function webp_upload_mimes( $existing_mimes ) {
// add webp to the list of mime types
$existing_mimes['webp'] = 'image/webp';

// return the array back to the function with our added mime type
return $existing_mimes;
}
add_filter( 'mime_types', 'webp_upload_mimes' );


как их вставлять?
  • Вопрос задан
  • 361 просмотр
Решения вопроса 1
может я что-то не так понял, но начиная с WP 5.8 они встроили поддержку webp в движок.
https://make.wordpress.org/core/2021/06/07/wordpre...
то есть можно просто загружать через медиафайлы и всё - скрин https://disk.yandex.com/i/xiHxeqEJESWsWw
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@a_stepanov29
Javascript, Wordpress
Нашел в чем проблема.
Самостоятельно настраивал сервер для wordpress + nginx
Тоже выдавало такую же ошибку
Проблема была в отсутствии библиотек для работы с webp
php-imagick и php-gd

Чтобы проверить установлены ли данные либы и поддерживается ли загрузка webp можно сделать следующее:
1. добавить следующий код в functions.php
2. открыть библиотеку медиа
3. посмотреть что выведет уведомление

Код:
add_action('admin_notices', function () {
  $gd_support = false;
  $imagick_support = false;

  if (extension_loaded('gd')) {
    $gd_info = gd_info();
    $gd_support = $gd_info['WebP Support'] ?? false;
  }

  if (class_exists('Imagick')) {
    $imagick = new Imagick();
    $formats = $imagick->queryFormats('WEBP');
    $imagick_support = in_array('WEBP', $formats);
  }

  if ($gd_support || $imagick_support) {
    echo '<div class="notice notice-success is-dismissible"><p>WebP is supported on this server.</p></div>';
  } else {
    echo '<div class="notice notice-error"><p>WebP is not supported on this server.</p></div>';
  }
});


4. Если выведет что не поддерживается то установить библиотеки
sudo apt-get update
sudo apt-get install php-gd
sudo apt-get install php-imagick
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы