미디어 업 로더를 사용하여 잘못된 크기의 이미지 업로드 거부


12

포스트 편집 화면에서 사용자 정의 필드에 이미지를 추가하기 위해 매우 엄격한 설정을 진행하고 있습니다. 내 최적의 시나리오는 사용자가 해당 특정 사용자 정의 값에 대해 잘못된 크기의 이미지를 업로드하려고 할 때 사용자 정의 오류 메시지를 추가하는 것입니다.

맞춤 업 로더로이 작업을 수행 할 수 있다는 것을 알고 있지만 일반 미디어 업 로더로 작업하는 것을 선호합니다. 또한 파일 이름의 유효성을 검사하고 일반 요구 사항에 따라 사용자 정의 오류 메시지를 생성하는 데 이미 사용 하는 wp_handle_upload_prefilter에 대해 알고 있습니다. 지금 필요한 것은 사용자 지정 요구 사항을 사용하여 업로드중인 필드를 기준으로 업로드를 거부하는 방법입니다.

또한 업로드시 게시물 이미지차별화 된 추천 이미지를 알고 있지만 사전 저장 솔루션을 원했습니다.

이것은 다음과 같이 보일 것입니다 :

여기에 이미지 설명을 입력하십시오

wp_handle_upload_prefilter우리가 다루고있는 분야를 알리는 방법에 대한 아이디어 가 있습니까?


흥미로운 질문입니다. 나는 일반적으로 말하자면, 커스텀 미디어 업 로더 모달 스크립트를 통해 커스텀 변수를 전달한다고 생각합니다. 100 % 확신 할 수는 없지만 이것이 유일한 방법 일 수 있습니다. 계속해서 찾아 보면 필요한 정보를 찾을 수 있습니다. 그런 다음 되돌아 와서 구체적인 정보를 사용하여 질문을 작성하거나 직접 해결하는 경우 솔루션을 답변으로 게시하십시오. 행운을 빕니다!
Nicolai

맞춤 이라고하면 여기에 설명 된 것과 같이 워드 프레스 미디어 업 로더의 맞춤 사용을 의미 합니다 .
Nicolai

예, 플래시 업 로더 시절에 이와 같은 작업을 수행했습니다. 나는 이번에 더 깨끗한 길을 가고 있었지만 가능하지 않을 수도 있습니다. 감사합니다!
moraleida

나는 당신의 말을 듣지만 실제로 그렇게하는 것이 그렇게 나쁜 방법은 아니라고 생각합니다. 게다가, 내가 말했듯이, 나는 그것을 할 수있는 다른 방법을 보거나 알지 못하지만, 그것을 정리하기 위해 더 많은 지식을 가진 사람이 올 수 있습니다.
Nicolai

1
당신은 이것을 계속하고 있습니까? 그렇지 않은 경우 작업중 인 코드가 있으면 게시하십시오. 더 많은 기초가 있다면 질문에 현상금을 기꺼이 드리겠습니다.
Nicolai

답변:


4

핸들러에서 'error'를 설정하면 오류 메시지가 표시되고 업로드가 취소됩니다.

add_filter( 'wp_handle_upload_prefilter', 'custom_upload_filter' );

function custom_upload_filter( $file ) {
    $image_info   = getimagesize( $file['tmp_name'] );
    $image_width  = $image_info[0];
    $image_height = $image_info[1];

    if ( $image_with !== 800 || $image_height !== 600 ) {
        $file['error'] = __( 'Images must be sized exactly 800 * 600', 'your_textdomain' );
    }
    return $file;
}

사용자가 다른 크기의 업로드를 시도하면 메시지는 다음과 같습니다.

thefile.png has failed to upload due to an error  
Size must be exactly 800 * 600

참고 wp_handle_upload_prefilter파일이 제대로 (HTTP 관점에서) 업로드 크기를 테스트하기 전에 이미지입니다 된 경우 테스트 할 수 있도록, 초기 업로드 처리되어 있습니다.

wp_handle_upload()핵심 파일의 참조 : funtionwp-admin/includes/file.php


예, 이것이 파일 이름과 svg 속성의 유효성을 검사하기 위해 이미 수행중인 작업입니다. 지금 당장 필요한 것은 다른 매개 변수를 해당 (또는 다른) 필터에 전달하여 업로드로 채워지는 필드를 나타내므로 다른 필드에 다른 제한을 적용 할 수 있습니다. 이것은 실제로 지금 보류 중입니다. 나중에 찾은 내용으로 질문을 업데이트하겠습니다.
moraleida
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.