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

[РЕШЕНО] PNG to JPG 3. — Автоматическое редактирование базы данных

1 нужно узнать кто пишет инфу в БД это делает
/wp-admin/includes/image.php

2 функция которая заведует редактированием и отбором размеров
wp_generate_attachment_metadata()

3 с функцией определился вот результат - нужно просто вручную добавить условия в нужное место

            if ( ! is_wp_error( $editor ) )
				$metadata['sizes'] = $editor->multi_resize( $sizes );
		} else {
			$metadata['sizes'] = array();
		}

/* ---- kolshix for "PNG to JPG" ---- 
// add original PNG in databese image "_wp_attachment_metadata"
// call original image PNG <?php echo wp_get_attachment_image_url( $id, 'png_original' ) ?> 
// у плагина должна стоять настройка автоматической подмены файлов PNG на JPG 
// также  должна стоять настройка сохранения оригинала PNG
// возьмем (адррес + файл) и зменим расширение на PNG 
// если формат GIF TIF BMP - то они не пройдут проверку расширения - и база данных будет не тронута 
// если файл JPG то он войдет в правило замены но не пройдет правило наличия файла PNG - которого нет, а значит база будет не тронута 
// Когда грузите PNG - все будет отлично и он прайдет все правила
*/

$file_png = preg_replace("/\.jpg$/", ".png", $file);
$results_path_parts = pathinfo($file);
$results_extension = $results_path_parts['extension'];
$results_extension = mb_strtolower($results_extension);

if (file_exists( $file_png ) && $results_extension == 'jpg') {
	 $results = $metadata['file'];
	 $results = basename($results);  
	 $results = preg_replace("/\.jpg$/", ".png", $results);
	 $metadata[sizes][png_original] = Array(
		"file" => $results,
		"width" => $metadata['width'],   // ширину вытяну из metadata
		"height" => $metadata['height'],  // высоту вытяну из metadata
		"mime-type" => "image/png"
	 ); 
}
/* END - kolshix for "PNG to JPG" ---- */

		// Fetch additional metadata from EXIF/IPTC.
		$image_meta = wp_read_image_metadata( $file );
		if ( $image_meta )

ВОПРОС

Помогите допилить код - буду использовать его совместно с плагином PNG to JPG

Хочу использовать либо в function.php или в mu-plugins.
(нужно чтоб код выполнялся после того как загружено изображение и его данные записаны в таблицу базы данных) - код должен работать как при массовой загрузке изображений так и при единичной

вот что набрасал, нужна консультация
код проверяет если формат\расширение PNG то выполняется - если нет ничего не меняется

function ifthisPNG (){ // что нужно вставить здесь?
  $image_id = get ID upload image; // как получить id изображения?
  $format_image = get the file format ("mime-type); // тут формат получу по ID 
  if ($format_image == "PNG"){
	 $data = wp_get_attachment_metadata( $image_id );
	 $image_name = name.'.png'; // имя тоже получу по ID

	 $data[sizes][png_original] = Array(
		"file" => $image_name,
		"width" => "99999",   // ширину вытяну из metadata
		"height" => "99999",  // высоту вытяну из metadata
		"mime-type" => "image/png"
	 ); 
	 wp_update_attachment_metadata( $image_id, $data )
  }else{
	 // если формат не JPG - то оставить все как есть 
  }
}
0
kolshix195 4 месяца назад

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

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