Intereting Posts
Два RSS-канала, разные пункты ограничены? Пользовательский запрос для тега и пользовательского тега из 2 типа сообщения Лучший способ сохранить постмета почему двадцать одиннадцать вопросов смешивают единицы измерения css? Запрет доступа к панели мониторинга прерывает запросы ajax Правильный синтаксис или метод сохранения url в модифицированных ссылках на изотоп / категорию Как получить переменные на странице настроек моего плагина? Метод доставки не выбран Woocommerce: некоторые действия не срабатывают внутри класса Как заменить комментарии по умолчанию на пользовательский HTML? Как автоматически создавать пользовательский пункт меню из категорий? Сопоставьте данные флажка с заголовком страницы, чтобы показать определенные элементы. Новое сообщение из базы данных Пользовательские параметры для пользовательского типа сообщения Как разрешить Contributors публиковать статьи после утверждения

Как требовать минимального размера изображения для загрузки?

Мне нужен способ запретить авторам загружать изображения ниже конкретных измерений.

Скажем, я хочу разрешить загрузку изображений размером не менее 400 пикселей x 400 пикселей. Если размер изображения меньше, автор должен получить сообщение об ошибке, что изображение слишком мало.

Есть ли плагин или код, который может это сделать?

Solutions Collecting From Web of "Как требовать минимального размера изображения для загрузки?"

Добавьте этот код в файл functions.php вашей темы, и он ограничит минимальные размеры изображения

add_filter('wp_handle_upload_prefilter','tc_handle_upload_prefilter'); function tc_handle_upload_prefilter($file) { $img=getimagesize($file['tmp_name']); $minimum = array('width' => '640', 'height' => '480'); $width= $img[0]; $height =$img[1]; if ($width < $minimum['width'] ) return array("error"=>"Image dimensions are too small. Minimum width is {$minimum['width']}px. Uploaded image width is $width px"); elseif ($height < $minimum['height']) return array("error"=>"Image dimensions are too small. Minimum height is {$minimum['height']}px. Uploaded image height is $height px"); else return $file; } 

Затем просто измените номера минимальных размеров, которые вы хотите (в моем примере – 640 и 480)

Я предпочитаю не переформатировать код коллеги.
Итак, это почти тот же ответ, что и @ MaorBarazany, но проверяя тип mime, изменяя объявление file['error'] и меняя пространство имен функций на этот идентификатор вопроса wpse.

Кроме того, проверка выполняется только для пользователей, которые не являются администраторами .

 add_action( 'admin_init', 'wpse_28359_block_authors_from_uploading_small_images' ); function wpse_28359_block_authors_from_uploading_small_images() { if( !current_user_can( 'administrator') ) add_filter( 'wp_handle_upload_prefilter', 'wpse_28359_block_small_images_upload' ); } function wpse_28359_block_small_images_upload( $file ) { // Mime type with dimensions, check to exit earlier $mimes = array( 'image/jpeg', 'image/png', 'image/gif' ); if( !in_array( $file['type'], $mimes ) ) return $file; $img = getimagesize( $file['tmp_name'] ); $minimum = array( 'width' => 640, 'height' => 480 ); if ( $img[0] < $minimum['width'] ) $file['error'] = 'Image too small. Minimum width is ' . $minimum['width'] . 'px. Uploaded image width is ' . $img[0] . 'px'; elseif ( $img[1] < $minimum['height'] ) $file['error'] = 'Image too small. Minimum height is ' . $minimum['height'] . 'px. Uploaded image height is ' . $img[1] . 'px'; return $file; } 

Результат крюка:

заблокированные загрузки изображений