[РЕШЕНО] PNG to JPG 2. — отловить ID изображения
Вдержка из плагина
function convert_image( $params ){ $img = imagecreatefrompng($params['file']); $bg = imagecreatetruecolor(imagesx($img), imagesy($img)); imagefill($bg, 0, 0, imagecolorallocate($bg, 255, 255, 255)); imagealphablending($bg, 1); imagecopy($bg, $img, 0, 0, 0, 0, imagesx($img), imagesy($img)); $newPath = preg_replace("/\.png$/", ".jpg", $params['file']); // $newUrl = preg_replace("/\.png$/", ".jpg", $params['url']); // if ( imagejpeg( $bg, $newPath, $this->settings["general"]["jpg_quality"] ) ){ if( ! isset( $this->settings["general"]["leave_original"] ) || ( isset( $this->settings["general"]["leave_original"] ) && ! $this->settings["general"]["leave_original"] ) ){ unlink($params['file']); } $params['file'] = $newPath; $params['url'] = $newUrl; $params['type'] = 'image/jpeg'; return $params; } return 0; }
Код конвертирует изображения PNG в JPG и позволяет оставить оригинал PNG (если такова функция включена )
(Проанализировал плагин как мог - думаю что момент записи в БД происходит в процессе работы кода выше)
как прикрутить к коду выше команду \ Я просто не знаю в какой момент идет запись в БД и можно ли будет вытянуть ID картинки в этот момент для обновления поля _wp_attachment_metadata
wp_update_attachment_metadata( $post_id, $data );
и добавить в код
$oldfilename = тут будет переменная с именем файла и расширением PNG // дописываем нужный код $data[sizes][png_old] = Array( "file" => $oldfilename, "width" => "999999", "height" => "999999", "mime-type" => "image/png" );
так же думаю что можно считать данные из БД и выставить правильные
"width" => "999999", "height" => "999999",
Я понимаю - просто не знаю где и на каком уровне можно поменять данные БД
вот весь код
как я понял в данном месте и этапе нельзя выполнить редактирование БД - так как файл уже существует но в БД ещё не прописан
wp_posts
А значит нет чтого что нужно поправить
Этот код создает файл в папке, с БД ничего не делает...