Donc, j'essaie de trouver un moyen d'utiliser deux dossiers de téléchargement séparés, étant celui par défaut wp-content/uploads
pour les téléchargements de médias généraux, et un autre wp-content/custom
pour un type spécifique de pièces jointes (fichiers PDF joints à un post_type spécifique).
Il est important de les garder séparés à la fois pour l'organisation et la sécurité des données car les fichiers PDF contiendront des données quelque peu sensibles qui ne devraient être accessibles que par deux rôles d'utilisateur personnalisés, tandis que les médias généraux sont, bien, généraux.
Je suis un peu gêné de vous montrer le code avec lequel je me suis mis à travailler, parce que c'est moche, mais voilà:
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');
Je préfère vraiment avoir 2 fichiers de téléchargement, l'un pour ce post-format et l'autre pour le reste. Existe-t-il une manière plus propre de procéder?
la source