WP MultiSite中自定义帖子类型的PDF的特定上传文件夹

时间:2013-01-31 作者:Gerald

我需要过滤上传到特定文件夹的自定义帖子类型,称为“文档”,仅适用于PDF。

到目前为止,我已经:

function custom_upload_directory( $args ) {
$base_directory = \'/home/xxx/my_uploadfolder\';
$base_url = \'http://xxxx/wp-content/uploads/my_uploadfolder\';

$id = $_REQUEST[\'post_id\'];
$parent = get_post( $id )->post_parent;
// Check the post-type of the current post

if( "document" == get_post_type( $id ) || "document" == get_post_type( $parent ) ) {
    $args[\'path\'] = $base_directory;
    $args[\'url\']  = $base_url;
    $args[\'basedir\'] = $base_directory;
    $args[\'baseurl\'] = $base_url;

}

return $args;
}
add_filter( \'upload_dir\', \'custom_upload_directory\' );
它可以工作,但有一些问题::任何类型的文件都会在my\\u uploadfolder中重定向。此外,我无法从WP admin中删除这些文件。有人能帮忙吗?

2 个回复
SO网友:birgire

您可以考虑使用

if(get_post_mime_type($id) == \'application/pdf\'){
   ...
}
检查pdf文件。

http://codex.wordpress.org/Function_Reference/get_post_mime_type

您还可以查看wp_delete_attachment() 函数,您可以使用delete attachment 行动删除可以使用的文件unlink()

http://php.net/manual/en/function.unlink.php

SO网友:Brian

您在这里遇到问题的原因是您正在对upload_dir. 与其这样做,不如对upload_dir 第一次检查后[\'mime-type\'] 对于application/pdf. 您需要在wp_handle_upload 操作挂钩并更改那里的上载文件夹。您发布的内容正朝着正确的方向发展,但您需要与传入的$_POST 数据并通过搜索上载文件在此处应用过滤器[\'mime-type\'] WordPress在上载过程中存储的内容。

结束

相关推荐

WP MultiSite:默认添加关于博客创建的页面

我希望在使用WP Multisite创建新站点时,在默认情况下添加一个页面。因此,我有一个创建两个页面的函数:function my_default_pages() { $default_pages = array(\'Impress\', \'Contact\'); $existing_pages = get_pages(); foreach($existing_pages as $page) { $temp[] = $p