Folder unggahan khusus untuk PDF dalam jenis Posting kustom dalam WP multisite

14

Saya perlu memfilter unggahan ke folder tertentu untuk jenis posting khusus yang disebut "dokumen" hanya untuk PDF.

Sejauh ini, saya punya:

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

Ini berfungsi, tetapi dengan beberapa masalah:: semua jenis file dialihkan di my_uploadfolder. Juga, saya tidak bisa menghapus file-file ini dari admin WP sekali di sana. Adakah yang bisa membantu?

Gerald
sumber

Jawaban:

2

Alasan Anda mengalami masalah di sini adalah karena Anda menerapkan filter universal upload_dir. Daripada melakukan hal ini, menggunakan filter bersyarat untuk upload_dirsetelah memeriksa pertama ['mime-type']untuk application/pdf. Anda perlu mencegat proses unggah di wp_handle_uploadhook tindakan dan mengubah folder unggahan di sana. Apa yang Anda poskan sedang menuju ke arah yang benar, tetapi Anda harus bekerja dengan $_POSTdata yang masuk dan menerapkan filter di sana dengan mencari mengunggah file ['mime-type']yang disimpan WordPress selama proses pengunggahan.

Brian
sumber