카테고리 보관물: wordpress

wordpress

WP 멀티 사이트에서 사용자 정의 Post 유형의 PDF에 대한 특정 업로드 폴더 ‘http://xxxx/wp-content/uploads/my_uploadfolder’; $id = $_REQUEST[‘post_id’]; $parent = get_post( $id

PDF의 경우에만 “문서”라는 사용자 정의 게시물 유형에 대해 특정 폴더로 업로드를 필터링해야합니다.

지금까지 나는

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

그것은 작동하지만 몇 가지 문제가 있습니다 : : 모든 종류의 파일이 my_uploadfolder에서 리디렉션됩니다. 또한 한 번 WP 관리자에서 이러한 파일을 삭제할 수 없습니다. 누군가 도울 수 있습니까?



답변

당신은 사용을 고려할 수 있습니다

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

pdf 파일을 확인하십시오.

http://codex.wordpress.org/Function_Reference/get_post_mime_type

wp_delete_attachment () 함수 뒤에있는 코드를보고 첨부 파일 삭제 조치 를 사용하여 코드에 연결할 수도 있습니다 . 파일을 제거하려면 unlink ()를 사용할 수 있습니다

http://php.net/manual/en/function.unlink.php


답변

여기에서 문제가 발생하는 이유는에 범용 필터를 적용하고 있기 때문 upload_dir입니다. 오히려 이렇게보다 대한 조건부 필터를 사용하는 upload_dir제 확인한 후 ['mime-type']대한 application/pdf. wp_handle_upload작업 후크 에서 업로드 프로세스를 가로 채서 업로드 폴더를 변경해야합니다. 게시 한 것은 올바른 방향으로 향하고 있지만 업로드 프로세스 중에 WordPress에 저장하는 $_POST파일을 업로드 하여 수신 데이터 로 작업 하고 필터를 적용해야 ['mime-type']합니다.


답변