Cartella di caricamento specifica per PDF nel tipo di posta personalizzato nel sito WP


14

Devo filtrare i caricamenti in una cartella specifica per un tipo di post personalizzato chiamato "documento" solo per i PDF.

Finora ho:

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' );

Funziona, ma con alcuni problemi:: qualsiasi tipo di file viene reindirizzato in my_uploadfolder. Inoltre, non posso eliminare questi file dall'amministratore di WP una volta lì. Qualcuno può aiutare?

Risposte:



2

Il motivo per cui hai problemi qui è che stai applicando un filtro universale upload_dir. Piuttosto che fare questo, utilizzare un filtro condizionale per upload_dirdopo il primo controllo ['mime-type']per application/pdf. È necessario intercettare il processo di caricamento nel wp_handle_uploadgancio di azione e modificare la cartella di caricamento lì. Quello che hai pubblicato si sta dirigendo nella giusta direzione, ma devi lavorare con i $_POSTdati in arrivo e applicare il filtro lì cercando i file caricati ['mime-type']da WordPress durante il processo di caricamento.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.