Intereting Posts
Как добавить вкладки на страницу post.php для моего пользовательского сообщения $ wpdb-> insert никак не работает Добавить интерфейс «Восстановить» Отображение пользовательских сообщений У вас есть один набор «канонических» категорий, разделяемых всеми блогами? При использовании системы кэширования с помощью WordPress Переход на многоузловое соединение с префиксом www Запрос, чтобы вернуть только два новых вложения (изображения)? Как перейти к объединению выпадающих списков / фильтров? term / tag не сохраняется для пользовательского типа сообщения Создайте настраиваемое поле captcha для формы комментария WordPress без плагина Попытка получить запрос api с ошибкой 404 global $ current_user не текущий пользователь Контент-генератор для сайта разработки Замените изображение заголовка на всех других страницах, но проблема с домашним URL-адресом

Как отключить генерацию размеров изображений по умолчанию для некоторых пользовательских типов сообщений?

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

Мой первый шаг – перехват функции 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'); 

Но как сделать работу моим крючком?

Solutions Collecting From Web of "Как отключить генерацию размеров изображений по умолчанию для некоторых пользовательских типов сообщений?"

Я думаю, что единственное решение, которое у вас есть на данный момент, – отключить все промежуточные размеры изображения:

 add_filter( 'intermediate_image_sizes', '__return_empty_array', 99 ); 

И затем вручную создайте их в зависимости от типа сообщения, подключившись к «wp_generate_attachment_metadata», где у вас есть доступ к идентификатору вложения (и, следовательно, к его родительскому сообщению):

 function do_your_stuff( $data, $attachment_id ) { // generate intermediate images return $data; } add_filter( 'wp_generate_attachment_metadata', 'do_your_stuff', 10, 2 );