Modifier le répertoire de téléchargement des fichiers PDF

14

Je souhaite modifier le répertoire de téléchargement pour les fichiers PDF uniquement , pas pour les autres fichiers. Par exemple, les fichiers PDF seraient téléchargés wp-content/uploads/pdfmais d'autres fichiers resteraient wp-content/uploads/yyyy/mm.

Je sais qu'il est possible de filtrer upload_dirmais je ne sais pas comment le faire avec les types de fichiers / mimes.

Merci!

Sinklar
la source
Cela peut vous aider: wordpress.stackexchange.com/questions/26939/…
justice est bon marché

Réponses:

17

Suite à l'exemple de Justice Is Cheap , j'ai fini d'adapter les fonctions de ce plugin: http://wordpress.org/extend/plugins/custom-upload-dir/

<?php
/* 
 * Change upload directory for PDF files 
 * Only works in WordPress 3.3+
 */

add_filter('wp_handle_upload_prefilter', 'wpse47415_pre_upload');
add_filter('wp_handle_upload', 'wpse47415_post_upload');

function wpse47415_pre_upload($file){
    add_filter('upload_dir', 'wpse47415_custom_upload_dir');
    return $file;
}

function wpse47415_post_upload($fileinfo){
    remove_filter('upload_dir', 'wpse47415_custom_upload_dir');
    return $fileinfo;
}

function wpse47415_custom_upload_dir($path){    
    $extension = substr(strrchr($_POST['name'],'.'),1);
    if(!empty($path['error']) ||  $extension != 'pdf') { return $path; } //error or other filetype; do nothing. 
    $customdir = '/pdf';
    $path['path']    = str_replace($path['subdir'], '', $path['path']); //remove default subdir (year/month)
    $path['url']     = str_replace($path['subdir'], '', $path['url']);      
    $path['subdir']  = $customdir;
    $path['path']   .= $customdir; 
    $path['url']    .= $customdir;  
    return $path;
}
brasofilo
la source
Salut ... besoin de télécharger en dehors du dossier "/ wp-content / uploads /". S'il vous plaît aider
Ivan Slaughter
1

vous pouvez changer le répertoire de téléchargement à partir du fichier wp-config.php dans wordpress.

define ('UPLOADS', 'myimages'); Assurez-vous d'ajouter ce code avant la ligne:

require_once (ABSPATH.'wp-settings.php ');

cela vous permet de télécharger des médias dans le dossier myimages au lieu de wp-content / uploads

Merci

NPatel
la source
Cela ne répond pas à la question. Le problème initial était de changer le dossier de téléchargement pour les pdffichiers uniquement.
Sinklar