WordPress как на ладони
wordpress jino

[РЕШЕНО] 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",
Kama 2 месяца назад

Этот код создает файл в папке, с БД ничего не делает...

kolshix 2 месяца назад

Я понимаю - просто не знаю где и на каком уровне можно поменять данные БД
вот весь код

как я понял в данном месте и этапе нельзя выполнить редактирование БД - так как файл уже существует но в БД ещё не прописан

wp_posts

А значит нет чтого что нужно поправить

0
kolshix130 2 месяца назад

Нет ответов на этот вопрос.

На вопросы могут отвечать только зарегистрированные пользователи. Регистрация. Вход.