어떻게 업로드를위한 최소의 이미지 치수를 요구하려면?


17

저자가 특정 크기의 이미지를 업로드하지 못하도록 제한하는 방법이 필요합니다.

400px x 400px 이상의 이미지 만 업로드하고 싶다고 가정 해 보겠습니다. 이미지 크기가 작 으면 작성자가 이미지가 너무 작다는 오류 알림을받습니다.

이 작업을 수행 할 수있는 플러그인 또는 코드가 있습니까?

답변:


25

이 코드를 테마의 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입니다)


감사! 게시물 섬네일을 포함하는 경우이 기능을 실행하지 않는 방법이 있습니까?
Arthur Dos Santos Dias

이것은 당신이 당신이 그것을 분류 또는 축소판으로 지정하기 전에 단계는, 여전히 파일이며, 파일을 업로드 할 때마다 실행됩니다. 파일 이름이 해당 조건을 충족하는 경우 기능을 실행하지 않는 것보다 당신이하여 수 썸네일 이미지 파일을 접두어 / 접미어 선택한와 파일의 이름에 따라 조건을 추가하고 이름을 지정할 수 있습니다.
Maor Barazany

14 행은 "너비"를 "높이"로 바꿔야하지만 그렇지 않으면 이것이 바로 내가 필요했던 것입니다.

11

동료의 코드를 다시 포맷하지 않는 것이 좋습니다.
그래서,이 MaorBarazany의 @와 거의 같은 대답이지만, 변화, 마임 유형을 확인 file['error']선언이 wpse 질문 ID로 기능 네임 스페이스를 변경.

또한 관리자아닌 사용자에 대해서만 검사가 수행됩니다 .

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;
}

후크의 결과 :

차단 된 화상 업로드


이것을 사랑하고 그것은 매력처럼 작동합니다. 그러나 한 가지 문제가 있습니다. 특정 게시물 유형에만이 필터를 적용하려는 경우 사용자는 여전히 미디어 라이브러리에서 다른 게시물 유형 (크기 요구 사항없이)에 업로드 된 이미지를 선택할 수 있습니다 (이 요구 사항을 충족하지 않음).
cfx

추천 이미지를 업로드하는 경우에만이를 적용 할 수 있습니까?
deathlock
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.