Итак, я пытаюсь найти способ использовать две отдельные папки для загрузки, являясь папкой по умолчанию wp-content/uploads
для обычных загрузок мультимедиа, а другая, например, wp-content/custom
для одного определенного типа вложений (файлы PDF, прикрепленные к одному конкретному post_type).
Важно держать их разделенными как для организации, так и для безопасности данных, поскольку файлы PDF будут содержать несколько конфиденциальных данных, которые должны быть доступны только для двух пользовательских пользовательских ролей, в то время как общие носители, в общем, общие.
Я немного смущен, чтобы показать вам код, который у меня получился, потому что он паршивый, но вот он:
function custom_post_type_metabox_save_function($post_id) {
global $post;
// Verify auto-save, nonces, permissions and so on then:
update_post_meta($post_id, "meta_key1", $_POST["value1"]);
update_post_meta($post_id, "meta_key2", $_POST["value2"]);
// this is where it gets uply. I change the 'upload_path' to my desired one for this post type
update_option('upload_path','wp-content/custom-upload-dir');
// then upload the file to it
wp_upload_bits($_FILES["pdfexame"]["name"], null, file_get_contents($_FILES["pdfexame"]["tmp_name"]));
// and then change it back to default... :$
update_option('upload_path','');
}
add_action('save_post','custom_post_type_metabox_save_function');
Я действительно предпочел бы просто загрузить 2 файла: один для этого пост-формата, а другой для остальных. Есть ли более чистый способ сделать это?
источник