是否有任何方法可以根据当前帖子类型限制允许上载的文件类型?
例如,我有一个名为documents
. 我有一个File upload
自定义字段,它调用媒体上传器(Media upload.php),我可以上传一个文件。我想将文件限制为pdf
, doc
和xls
.
然而,我也有一个帖子类型,叫做illustrations
其中我想将上载文件类型限制为jpeg
, png
或gif
.
我目前正在尝试Mike Schinkel的答案Limit image upload to one and disable audio, video and other document file types to upload 限制文件类型,但我不知道如何根据当前的帖子类型更改允许的文件类型数组。
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.";
}
我试过使用
get_current_screen()
但它返回媒体上载程序本身的id。我还尝试使用
global $post
但我什么也没得到。
或者add a filter to upload_mimes
基于当前职位类型?
有什么建议吗?
Answer:
if( isset( $_REQUEST[\'post_id\'] ) && $post_type = get_post_type( absint( $_REQUEST[\'post_id\'] ) ) ) {
if( \'illustrations\' === $post_type ){
$filetype = array(\'png\', \'jpeg\', \'gif\', \'jpg\');
$message = \'Only PNG, JPEG, JPG, and GIF allowed.\';
}
elseif( \'documents\' === $post_type ){
$filetype = array(\'doc\',\'docx\',\'pdf\',\'xls\', \'xlsx\', \'zip\');
$message = \'Only PDF, DOC, DOCX, XLS, XLSX, and ZIP allowed. \';
}
}