Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Change the upload directory of Advanced Custom Fields file upload field.
<?php
// ACF upload prefilter
function gist_acf_upload_dir_prefilter($errors, $file, $field) {
// Only allow editors and admins, change capability as you see fit
if( !current_user_can('edit_pages') ) {
$errors[] = 'Only Editors and Administrators may upload attachments';
}
// This filter changes directory just for item being uploaded
add_filter('upload_dir', 'gist_acf_upload_dir');
}
// ACF hook, set to field key of your file upload field
add_filter('acf/upload_prefilter/key=field_580ac5acd5616', 'gist_acf_upload_dir_prefilter');
// Custom upload directory
function gist_acf_upload_dir($param) {
// Set to whatever directory you want the ACF file field to upload to
$custom_dir = '/uploads/custom_dir';
$param['path'] = WP_CONTENT_DIR . $custom_dir;
$param['url'] = WP_CONTENT_URL . $custom_dir;
return $param;
}
@hmowais

This comment has been minimized.

Copy link

@hmowais hmowais commented Dec 17, 2019

getting this error:
Unexpected response from the server. The file may have been uploaded successfully. Check in the Media Library or reload the page.

@vls-dev

This comment has been minimized.

Copy link

@vls-dev vls-dev commented Feb 24, 2020

need to change ln 19 to...
add_filter('acf/upload_prefilter/key=field_580ac5acd5616', 'gist_acf_upload_dir_prefilter', 10, 3 );

@fueledbyboredom

This comment has been minimized.

Copy link

@fueledbyboredom fueledbyboredom commented May 18, 2020

Thanks for the gist, it's really helped me from banging my head against the wall. Is it possible to also further sort uploads by user id in addition to the custom directory?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment