wp_upload_bits()를 사용하여 파일을 업로드한 후, 이 파일을 WordPress의 미디어 라이브러리에 추가하려면 몇 가지 추가 작업이 필요합니다. 파일을 업로드한 다음, wp_insert_attachment(), wp_generate_attachment_metadata(), 그리고 wp_update_attachment_metadata() 함수를 사용하여 파일을 미디어 라이브러리에 추가할 수 있습니다.
// 업로드할 파일의 이름
$file_name = 'example.txt';
// 파일의 바이너리 데이터
$file_data = 'This is a test file content';
// 파일 업로드
$upload = wp_upload_bits($file_name, null, $file_data);
if ( !$upload['error'] ) {
// 파일이 성공적으로 업로드되었을 때
$file_path = $upload['file'];
$file_url = $upload['url'];
// 파일 정보 설정
$filetype = wp_check_filetype( basename( $file_path ), null );
$wp_upload_dir = wp_upload_dir();
$attachment = array(
'guid' => $file_url,
'post_mime_type' => $filetype['type'],
'post_title' => sanitize_file_name( basename( $file_path ) ),
'post_content' => '',
'post_status' => 'inherit'
);
// 첨부 파일 생성 및 ID 반환
$attach_id = wp_insert_attachment( $attachment, $file_path );
// 메타 데이터 생성 및 업데이트
require_once( ABSPATH . 'wp-admin/includes/image.php' );
$attach_data = wp_generate_attachment_metadata( $attach_id, $file_path );
wp_update_attachment_metadata( $attach_id, $attach_data );
echo '파일이 미디어 라이브러리에 성공적으로 추가되었습니다. 첨부 파일 ID: ' . $attach_id;
} else {
// 파일 업로드 중 오류가 발생했을 때
echo '파일 업로드 중 오류 발생: ' . $upload['error'];
}
설명
- wp_upload_bits(): 파일을 서버에 업로드합니다.
- wp_check_filetype(): 업로드된 파일의 MIME 유형을 확인합니다.
- wp_upload_dir(): WordPress 업로드 디렉토리의 정보를 가져옵니다.
- wp_insert_attachment(): 업로드된 파일을 WordPress의 미디어 라이브러리에 추가하고, 이 파일의 첨부 파일 ID를 반환합니다.
- wp_generate_attachment_metadata(): 첨부 파일의 메타데이터(이미지의 경우 썸네일 등)를 생성합니다.
- wp_update_attachment_metadata(): 생성된 메타데이터를 업데이트합니다.
이 예제 코드를 사용하면 파일이 WordPress 서버에 업로드되고, 미디어 라이브러리에 추가되며, 이를 관리할 수 있게 됩니다. 이 과정을 통해 사용자는 WordPress의 기본적인 파일 업로드 기능을 확장하여 특정 상황에 맞게 활용할 수 있습니다.