จำกัด การอัปโหลดภาพเป็นภาพเดียวและปิดการใช้งานเสียงวิดีโอและไฟล์เอกสารประเภทอื่น ๆ เพื่ออัปโหลด


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 - ขอบคุณที่ค้นหาข้อผิดพลาดของฉัน ฉันคิดว่าฉันพบปัญหาและโพสต์โค้ดเวอร์ชันใหม่ที่ฉันเชื่อว่าใช้ได้กับ flash uploader ทันที แจ้งให้เราทราบ!
MikeSchinkel

@ José Pablo Orozco Marín - ยอดเยี่ยม ดีใจที่ฉันสามารถช่วย
MikeSchinkel

ฉันควรจะเพิ่มบรรทัดนี้ที่ไหนและรองรับ tu wp 3.01 และรุ่นหลังหรือไม่

1
เฮ้ไมค์ คำตอบนี้ค่อนข้างเก่า มีวิธีที่ดีกว่าในการพิจารณา Wordpress เวอร์ชั่นใหม่หรือไม่?
Sisir
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.