禁用音频,视频和其他文件类型的上传。
仅接受图像(jpg,png,gif的上传) )。
将每个帖子的上传限制为一幅图片(最多一张)。
提前感谢。
#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
评论
您还可以修改Flash上传器,以仅允许一个文件。这与Mike提供的解决方案配合使用。