問題描述

有人知道添加新帖的一些技巧:

  1. 禁止上傳音頻,視頻和其他文件類型。

  2. 只接受圖像的上傳 (jpg,png,gif) 。

  3. 將每個帖子的上傳限制為一個圖像 (不超過一個) 。

提前致謝。

最佳解決方案

你好 JoséPablo OrozcoMarín:

我即將放棄,認為這是不可能或至少容易的,然後我偶然發現 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;
}

這裏有一些屏幕截圖顯示它的行動方式:

參考文獻

注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。