2015-02-23 3 views
0

При загрузке в Wordpress я хочу сохранить изображение дважды, один раз в черно-белом и один раз по умолчанию. У меня есть следующий код, который делает это:Клонировать обратное и белое изображение для wordpress

add_action('after_setup_theme','bw_images_size'); 
function bw_images_size() { 
    add_image_size('themename-bw-image', get_option('thumbnail_size_w'), get_option('thumbnail_size_h'), false); 
} 

add_filter('wp_generate_attachment_metadata','themename_bw_filter'); 
function themename_bw_filter($meta) { 
    $file = wp_upload_dir(); 
    $file = trailingslashit($file['path']).$meta['sizes']['themename-bw-image']['file']; 
    list($orig_w, $orig_h, $orig_type) = @getimagesize($file); 
    $image = wp_load_image($file); 
    imagefilter($image, IMG_FILTER_GRAYSCALE); 
    switch ($orig_type) { 
     case IMAGETYPE_GIF: 
      imagegif($image, $file); 
      break; 
     case IMAGETYPE_PNG: 
      imagepng($image, $file); 
      break; 
     case IMAGETYPE_JPEG: 
      imagejpeg($image, $file); 
      break; 
    } 
    return $meta; 
} 

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

add_image_size('themename-bw-image', get_option('thumbnail_size_w'), get_option('thumbnail_size_h'), false); 

Но я не знаю, как получить исходный размер здесь. Как это может быть сделано?

ответ

0

Проблема в том, что вы указываете размер файла имя-bw-образ таким же, как эскиз.

Вместо этого используйте больший размер, например.

add_image_size('themename-bw-image', get_option('large_size_w'), get_option('large_size_h'), false); 
Смежные вопросы