Thư mục tải lên cụ thể cho các tệp PDF trong loại Bài đăng tùy chỉnh trong WP multisite


14

Tôi cần lọc các tệp tải lên vào một thư mục cụ thể cho loại bài đăng tùy chỉnh được gọi là "tài liệu" chỉ dành cho tệp PDF.

Cho đến nay, tôi có:

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

Nó hoạt động, nhưng với một số vấn đề :: mọi loại tệp đều được chuyển hướng trong my_uploadfolder. Ngoài ra, tôi không thể xóa các tệp này khỏi quản trị viên WP một lần ở đó. Ai đó có thể giúp gì không?

Câu trả lời:



2

Lý do bạn gặp sự cố ở đây là vì bạn đang áp dụng bộ lọc phổ quát upload_dir. Thay vì làm điều này, sử dụng một bộ lọc có điều kiện cho upload_dirsau khi kiểm tra đầu tiên ['mime-type']cho application/pdf. Bạn cần chặn quá trình tải lên tại wp_handle_uploadhook hành động và thay đổi thư mục tải lên ở đó. Những gì bạn đã đăng đang đi đúng hướng, nhưng bạn cần phải làm việc với $_POSTdữ liệu đến và áp dụng bộ lọc ở đó bằng cách tìm kiếm các tệp tải lên ['mime-type']mà WordPress lưu trữ trong quá trình tải lên.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.