Resim yüklemeyi bir taneyle sınırlayın ve yüklenecek ses, video ve diğer belge dosya türlerini devre dışı bırakın


20

Birisi Yeni Mesaj Ekle'de bir numara biliyor:

  1. Ses, video ve diğer dosya türlerinin yüklenmesini devre dışı bırakın.

  2. Yalnızca bir görüntünün yüklenmesini kabul edin (jpg, png, gif).

  3. Her bir Gönderinin yüklenmesini yalnızca Bir görselle sınırlayın (birden fazla olamaz).

Şimdiden teşekkürler.


1
Flash yükleyiciyi yalnızca bir dosyaya izin verecek şekilde de değiştirebilirsiniz . Bu, Mike'ın verdiği çözümle birlikte çalışır.
Jan Fabry

Yanıtlar:


25

Mümkün ya da en azından kolay olmadığını düşünmekten vazgeçmek üzereydim ve sonra wp_handle_upload_prefiltertam olarak istediğini veren filtreye tökezledim ! İşte kod:

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

İşte nasıl çalıştığını gösteren bazı ekran görüntüleri:

Görüntü dosyalarının yanı sıra herhangi bir şeyin birden fazla yüklenmesini devre dışı bırakmak için kodlu WordPress Yükleme İletişim Kutusu'nun ekran görüntüsü

Her gönderi için birden fazla resim yüklemesini devre dışı bırakmak üzere kodlu WordPress Yükleme İletişim Kutusu


Teşekkürler Mike. Flash olmayan yükleme işleminde çalışıyor gibi görünüyor, ancak flash sürümünü kullanarak şunları gösteriyor: ... Maalesef, yalnızca bir .GIF, bir .JPG veya bir .PNG resim dosyası yükleyebilirsiniz.
José Pablo Orozco Marín

@ José Pablo Orozco Marín - Hatayı bulduğunuz için teşekkür ederiz. Sorunu bulduğumu ve şimdi flash yükleyici için çalıştığına inandığım kodun daha yeni bir sürümünü yayınladığımı düşünüyorum. Bilmeme izin ver!
MikeSchinkel

@ José Pablo Orozco Marín - Harika. Yardımcı olduğuma sevindim.
MikeSchinkel

Bu satırı nereye eklemeliyim - tu wp 3.01 ve sonrakileri uyumlu mu?

1
merhaba mike. Bu cevap oldukça eski. WordPress'in yeni sürümünü göz önünde bulundurarak daha iyi bir yaklaşım var mı?
Sisir
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.