有人知道“添加新帖子到”中的一些技巧:


禁用音频,视频和其他文件类型的上传。
仅接受图像(jpg,png,gif的上传) )。
将每个帖子的上传限制为一幅图片(最多一张)。

提前感谢。

评论

您还可以修改Flash上​​传器,以仅允许一个文件。这与Mike提供的解决方案配合使用。

#1 楼

我本想放弃这是不可能的,或者至少很简单,然后我偶然发现了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;
}


这是一些截图,显示了它的实际效果:

评论


谢谢迈克。似乎可以在非Flash上​​传过程中工作,但是使用Flash版本显示:...很抱歉,您只能上传.GIF,.JPG或.PNG图片文件。

–何塞·帕勃罗·奥罗斯科·马林
2011-1-30在16:17



@JoséPablo OrozcoMarín-感谢您发现我的错误。我认为我已经找到了问题,并发布了我认为现在可以用于Flash上​​传器的新版本代码。让我知道!

– MikeSchinkel
2011年1月31日下午2:35

@JoséPablo OrozcoMarín-太好了。很高兴我能帮助你。

– MikeSchinkel
2011-2-5 17:42

我应该在哪里添加这行-它与tu wp 3.01和后者兼容吗?

–user3028
2011年2月9日在10:37

嘿,迈克。这个答案很老了。是否有更好的方法考虑新版本的wordpress?

–西西尔
2012年5月7日12:02