Intereting Posts
изменять размер только с помощью wp_get_image_editor Если инструкция для is_author сообщения добавить ввод в пользовательский javascript из страниц WordPress / сообщений Добавление контента в таксономический обмен Отображать (и управлять) изображениями веб-камеры? Добавить пользовательские поля в шаблон страницы, администратор Добавление дополнительного адреса электронной почты, который получает электронную почту, например, admin – woocommerce Как вставить новые значения в WordPress пользователя Имя и поля Фамилия через БД Как добавить раскрывающийся список ролей пользователей при регистрации в wordpress Пагинация не работает с шаблоном пользовательской категории Окно чата, скрывающееся за заголовком Twenty Eleven Скрыть пункты меню для посетителей и фильтровать на основе роли получить полную структуру категории по почте id Могу ли я предотвратить перечисление имен пользователей? 2 цикла, is_home не будет работать, счет выключен

Как изменить тип изображения для определенного размера?

Я оптимизирую сайт с большим (десятки) количеством изображений на странице в сетке. Для поддержки сетчатки изображения также должны быть в 2 раза.

Низкие висячие фрукты заключались в том, чтобы загружать размеры миниатюр (которые по-прежнему значительны по ширине 520 пикселей из-за сетчатки), а не полный первоначальный размер.

Однако почти все изображения сохраняются в PNG. Это огромная трата на фотографических снимках. Было бы разумно, чтобы сгенерированные миниатюры были JPG … За исключением того, что, похоже, нет способа сделать это.

От просмотра основного кода наиболее близким является WP_Image_Editor->get_output_format() но, похоже, не легко настраивать и настраивать определенные размеры.

Существуют ли другие коды кода, где я могу попытаться изменить тип создаваемого изображения?

Solutions Collecting From Web of "Как изменить тип изображения для определенного размера?"

Вы можете использовать фильтр wp_generate_attachment_metadata :

 function wpse_183835_to_jpeg( $meta, $post_id ) { $sizes_to_convert = array( 'thumbnail', ); $path = dirname( get_attached_file( $post_id ) ); foreach ( $sizes_to_convert as $size ) { if ( ! empty( $meta['sizes'][ $size ] ) ) { $data = $meta['sizes'][ $size ]; if ( $data['mime-type'] === 'image/png' && is_file( $file = "$path/{$data['file']}" ) ) { if ( $image =@ imagecreatefrompng( $file ) ) { // Change file extension $file_jpg = preg_replace( '/\.[^\.]+$/', '', $data['file'] ) . '.jpg'; if ( @ imagejpeg( $image, "$path/$file_jpg", 90 ) ) { // Save new jpg version // Update metadata with new filename $meta['sizes'][ $size ]['file'] = $file_jpg; // Delete png version @ unlink( $file ); } @ imagedestroy( $image ); } } } } return $meta; } add_filter( 'wp_generate_attachment_metadata', 'wpse_183835_to_jpeg', 10, 2 ); 

https://codex.wordpress.org/Function_Reference/wp_generate_attachment_metadata