我正要放弃认为这是不可能的或至少是很容易的想法,然后我偶然发现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;
}
下面是一些屏幕截图,展示了它的实际效果: