Pasta de upload específica para PDFs no tipo de postagem personalizada no WP multisite

14

Preciso filtrar os envios para uma pasta específica para um tipo de postagem personalizada chamado "documento" apenas para PDFs.

Até agora, eu tenho:

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

Funciona, mas com alguns problemas:: qualquer tipo de arquivo é redirecionado na pasta my_uploadfolder. Além disso, não consigo excluir esses arquivos do administrador do WP uma vez lá. Alguém pode ajudar?

Gerald
fonte

Respostas:

2

A razão pela qual você está tendo problemas aqui é a aplicação de um filtro universal upload_dir. Ao invés de fazer isso, use um filtro condicional para upload_dirapós a primeira verificação ['mime-type']para application/pdf. Você precisa interceptar o processo de upload no wp_handle_uploadgancho de ação e alterar a pasta de upload lá. O que você postou está indo na direção certa, mas você precisa trabalhar com os $_POSTdados recebidos e aplicar o filtro pesquisando os arquivos ['mime-type']que o WordPress armazena durante o processo de upload.

Brian
fonte