Dossier de téléchargement spécifique pour les PDF en type de publication personnalisé dans WP multisite

14

J'ai besoin de filtrer les téléchargements vers un dossier spécifique pour un type de publication personnalisé appelé "document" uniquement pour les PDF.

Jusqu'à présent, j'ai:

function custom_upload_directory( $args ) {
$base_directory = '/home/xxx/my_uploadfolder';
$base_url = 'http://xxxx/wp-content/uploads/my_uploadfolder';

$id = $_REQUEST['post_id'];
$parent = get_post( $id )->post_parent;
// Check the post-type of the current post

if( "document" == get_post_type( $id ) || "document" == get_post_type( $parent ) ) {
    $args['path'] = $base_directory;
    $args['url']  = $base_url;
    $args['basedir'] = $base_directory;
    $args['baseurl'] = $base_url;

}

return $args;
}
add_filter( 'upload_dir', 'custom_upload_directory' );

Cela fonctionne, mais avec quelques problèmes:: tout type de fichier est redirigé dans my_uploadfolder. De plus, je ne peux pas supprimer ces fichiers de l'administrateur WP une fois sur place. Quelqu'un peut-il aider?

Gerald
la source

Réponses:

2

La raison pour laquelle vous rencontrez des problèmes ici est que vous appliquez un filtre universel à upload_dir. Plutôt que de faire cela, utilisez un filtre conditionnel upload_diraprès la première vérification ['mime-type']pour application/pdf. Vous devez intercepter le processus de téléchargement au niveau du wp_handle_uploadcrochet d'action et y modifier le dossier de téléchargement. Ce que vous avez publié va dans la bonne direction, mais vous devez travailler avec les $_POSTdonnées entrantes et y appliquer le filtre en recherchant les fichiers téléchargés ['mime-type']que WordPress stocke pendant le processus de téléchargement.

Brian
la source