Carpeta de carga específica para archivos PDF en tipo de publicación personalizada en WP multisite

12

Necesito filtrar las cargas a una carpeta específica para un tipo de publicación personalizada llamado "documento" solo para archivos PDF.

Hasta ahora, tengo:

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, pero con algunos problemas:: cualquier tipo de archivo se redirige en my_uploadfolder. Además, no puedo eliminar estos archivos del administrador de WP una vez allí. ¿Alguien puede ayudar?

    
pregunta Gerald 31.01.2013 - 15:22

2 respuestas

2

La razón por la que tiene problemas aquí es porque está aplicando un filtro universal a upload_dir . En lugar de hacer esto, use un filtro condicional para upload_dir después de la primera comprobación de ['mime-type'] para application/pdf . Debe interceptar el proceso de carga en el gancho de acción wp_handle_upload y modificar la carpeta de carga allí. Lo que has publicado se dirige en la dirección correcta, pero debes trabajar con los datos entrantes de $_POST y aplicar el filtro allí buscando archivos subidos ['mime-type'] que WordPress almacena durante el proceso de carga.

    
respondido por el Brian 29.04.2013 - 16:35
1

usted podría considerar usar

if(get_post_mime_type($id) == 'application/pdf'){
   ...
}

para comprobar si hay archivos pdf.

enlace

También puede echar un vistazo al código detrás de la función wp_delete_attachment () y puede enlazarlo con la acción eliminar archivo adjunto . Para eliminar los archivos, puede utilizar unlink ()

enlace

    
respondido por el birgire 07.02.2013 - 10:26

Lea otras preguntas en las etiquetas