2015-02-18 2 views
4

Для моего сайта Wordpress я хочу сгенерировать программно и автоматически дополнительный размер фотографии , пока пользователь загружает картинку. Я хочу, чтобы эта фотография также отображалась в медиатеке .Подключиться к загрузке изображений Wordpress

Я написал небольшой плагин, который я активирую, чтобы подключиться к действию загрузки. Мой вопрос в том, какое действие для загрузки wp я должен подключить, чтобы создать этот дополнительный размер загруженного изображения.

Пример получения текущей загрузки и записи дополнительной записи изображения приветствуется.

Спасибо!

ответ

3

Вы можете попробовать wp_handle_upload_prefilter:

add_filter('wp_handle_upload_prefilter', 'custom_upload_filter'); 
function custom_upload_filter($file){ 
    $file['name'] = 'wordpress-is-awesome-' . $file['name']; 
    return $file; 
} 

Следуйте выше зацепить выгружать, и сделать некоторые любят генерировать дополнительные изображения:

function generate_image($src_file, $dst_file) { 
    $src_img = imagecreatefromgif($src_file); 
    $w = imagesx($src_img); 
    $h = imagesy($src_img); 

    $new_width = 520; 
    $new_height = floor($new_width * $h/$w); 

    if(function_exists("imagecopyresampled")){ 
     $new_img = imagecreatetruecolor($new_width , $new_height); 
     imagealphablending($new_img, false); 
     imagecopyresampled($new_img, $src_img, 0, 0, 0, 0, $new_width, $new_height, $w, $h); 
    } else { 
     $new_img = imagecreate($new_width , $new_height); 
     imagealphablending($new_img, false); 
     imagecopyresized($new_img, $src_img, 0, 0, 0, 0, $new_width, $new_height, $w, $h); 
    } 
    imagesavealpha($new_img, true);  
    imagejpeg($new_img, $dst_file); 

    imageDestroy($src_img); 
    imageDestroy($new_img); 

    return $dst_file; 
} 
Смежные вопросы