如何更改Pod ACT上载目录

时间:2018-06-23 作者:sasdev

我试图更改文件的上传目录,当它通过前端使用pods上传时。

如何使用pods检查上传是否来自高级内容类型?

模板视图页面。php

$pod_name = pods_v( 0, \'url\');
$pods = pods( $pod_name, $slug );
$fields = array( \'name\', \'file\' ); 
echo $pods->form( $fields ); 
功能。php

add_filter(\'upload_dir\', \'change_upload_dir\');
function change_upload_dir( $param ){

$pod_name = pods_v( 0, \'url\');
if ($pod_name == "paperwork") {
    $mydir = \'/paperwork\';
}

else {
    $mydir = \'/notpaperwork\';
}

$param[\'path\'] = $param[\'path\'] . $mydir;
$param[\'url\'] = $param[\'url\'] . $mydir;

return $param;
}

1 个回复
最合适的回答,由SO网友:Scott Kingsley Clark 整理而成

这里的简单答案是,您无法检查上传是否来自Pods高级内容类型,尤其是因为上传的媒体没有与之关联的post\\u id(此时不是post)。

更长的答案是,如果您的文件上载字段使用plupload本身,而不是普通的媒体库输入,您仍然可以自定义此选项。你会想加入pods_upload_handle 筛选到add_filter 为您的特别upload_dir 回调。只需确保在pods_upload_handle 筛选以允许POD继续处理上载。这个pods_upload_handle 筛选器传递5个参数:

$custom_handler = null, $file_arg = \'Filedata\', $post_id = $params->post_id, $params, $field
你应该检查一下$params->pod (pod id)已设置,如果是,请使用它检查是否是您的ACT pod。如果它与您的ACT pod匹配,那么您可以添加upload_dir 滤器

使用这种方式,您可以确保您添加它只是为了达到预期的效果。

结束

相关推荐