#php #wordpress #image
#php #wordpress #изображение
Вопрос:
Ищу способ регенерировать все мои избранные изображения и что это создаст новый размер изображения в черно-белом формате,
Я знаю, что это можно сделать в CSS, но мне нужно перенести это изображение с помощью REST в приложение JS canvas, и я не могу использовать CSS,
Я нашел этот код, но, похоже, он не работает в моем случае, он работает на некоторых страницах при загрузке изображений, но не при загрузке изображения в сообщение, также мне было интересно, есть ли способ сделать это с регенерацией всех эскизов на сайте, а не при загрузке.
add_action('after_setup_theme','themename_bw_size');
function themename_bw_size() {
add_image_size('themename-bw-image', 100, 100, true);
}
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;
}
Спасибо!
Комментарии:
1. Привет, Алон, добро пожаловать в SO. Что именно не работает ?
2. Куда вы добавили этот код? Кроме того, есть ли причина, по которой вы используете вызывающее
add_image_size
этоafter_setup_theme
действие?3. Код действительно создает новый размер изображения, что я ищу, так это получить код для создания нового размера черно-белого изображения с фильтром оттенков серого при регенерации эскизов. У меня на сайте более 600 изображений, из которых я хотел бы создать черно-белое изображение,