이미지 업로드를 하나로 제한하고 오디오, 비디오 및 기타 문서 파일 형식을 비활성화하여 업로드


20

누군가 새 게시물 추가에 대한 몇 가지 요령을 알고 있습니다.

  1. 오디오, 비디오 및 기타 파일 형식의 업로드를 비활성화합니다.

  2. 이미지 업로드 (jpg, png, gif) 만 수락하십시오.

  3. 각 게시물의 업로드를 하나의 이미지 (한 개 이하)로 제한하십시오.

미리 감사드립니다.


1
하나의 파일 만 허용하도록 Flash 업 로더를 수정할 수도 있습니다 . 이것은 Mike가 준 솔루션과 함께 작동합니다.
Jan Fabry

답변:


25

나는 그것이 가능하지 않았거나 적어도 쉽지 않다는 생각을 포기하려고 wp_handle_upload_prefilter했는데 필터에 걸려서 정확히 당신이 요구 한 것을 제공합니다! 코드는 다음과 같습니다.

add_filter('wp_handle_upload_prefilter', 'yoursite_wp_handle_upload_prefilter');
function yoursite_wp_handle_upload_prefilter($file) {
  // This bit is for the flash uploader
  if ($file['type']=='application/octet-stream' && isset($file['tmp_name'])) {
    $file_size = getimagesize($file['tmp_name']);
    if (isset($file_size['error']) && $file_size['error']!=0) {
      $file['error'] = "Unexpected Error: {$file_size['error']}";
      return $file;
    } else {
      $file['type'] = $file_size['mime'];
    }
  }
  list($category,$type) = explode('/',$file['type']);
  if ('image'!=$category || !in_array($type,array('jpg','jpeg','gif','png'))) {
    $file['error'] = "Sorry, you can only upload a .GIF, a .JPG, or a .PNG image file.";
  } else if ($post_id = (isset($_REQUEST['post_id']) ? $_REQUEST['post_id'] : false)) {
    if (count(get_posts("post_type=attachment&post_parent={$post_id}"))>0)
      $file['error'] = "Sorry, you cannot upload more than one (1) image.";
  }
  return $file;
}

다음은 실제 모습을 보여주는 스크린 샷입니다.

이미지 파일 이외의 항목을 여러 번 업로드하지 못하게하는 코드가있는 WordPress 업로드 대화 상자의 스크린 샷

게시물 당 여러 이미지 업로드를 비활성화하는 코드가있는 WordPress 업로드 대화 상자의 스크린 샷


고마워 마이크. 비 플래시 업로드 프로세스에서 작동하는 것 같지만 플래시 버전을 사용하면 다음과 같이 표시됩니다. ... 죄송합니다. .GIF, .JPG 또는 .PNG 이미지 파일 만 업로드 할 수 있습니다.
José Pablo Orozco Marín

@ José Pablo Orozco Marín-내 오류를 찾아 주셔서 감사합니다. 문제를 발견하고 플래시 업 로더에서 작동한다고 생각하는 최신 버전의 코드를 게시했다고 생각합니다. 알려주세요!
MikeSchinkel

@ José Pablo Orozco Marín-최고. 기꺼이 도와 드리겠습니다.
MikeSchinkel

이 줄을 어디에 추가해야합니까? tu wp 3.01 이상과 호환됩니까?

1
안녕 마이크 이 답변은 꽤 오래되었습니다. 새로운 버전의 워드 프레스를 고려하는 더 나은 접근 방법이 있습니까?
Sisir
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.