Я использовал пользовательский тип записи, где «миниатюра», «средний» и «большой» размер не требуются. Мне нужно отключить эти размеры и создать функцию или плагин, где я могу установить, какой размер изображения требуется для каждого пользовательского типа сообщения.
Мой первый шаг - подключение функции get_intermediate_image_sizes из wp-includes / media.php. Я добавил этот код в functions.php, но он не работает :(
add_filter('get_intermediate_image_sizes', 'get_intermediate_image_sizes_fixed');
function get_intermediate_image_sizes_fixed() {
global $_wp_additional_image_sizes;
//$image_sizes = array('thumbnail', 'medium', 'large'); // Standard sizes
$image_sizes = array();
if ( isset( $_wp_additional_image_sizes ) && count( $_wp_additional_image_sizes ) )
$image_sizes = array_merge( $image_sizes, array_keys( $_wp_additional_image_sizes ) );
return apply_filters( 'intermediate_image_sizes', $image_sizes );
}
UPD: редактирование этой строки в media.php работает. Типы по умолчанию после изменений не генерируются.
$image_sizes = array('thumbnail', 'medium', 'large');
Но как заставить мой крюк работать?
custom-post-types
post-thumbnails
uploads
images
Богдан Хдал
источник
источник
$attachment_id
аргумент в фильтр внутри этой функции. Таким образом, вы можете проверить тип сообщения в вашем хукеОтветы:
Я думаю, что единственное решение, которое у вас есть на данный момент, это отключение всех промежуточных размеров изображения:
А затем вручную сгенерируйте их, в зависимости от типа записи, подключившись к 'wp_generate_attachment_metadata', где у вас есть доступ к идентификатору вложения (и, следовательно, к его родительскому сообщению):
источник