[РЕШЕНО] 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
А значит нет чтого что нужно поправить
Этот код создает файл в папке, с БД ничего не делает...