wp_upload_bits()를 사용하여 파일을 업로드한 후, 이 파일을 WordPress의 미디어 라이브러리에 추가하려면 몇 가지 추가 작업이 필요합니다. 파일을 업로드한 다음, wp_insert_attachment(), wp_generate_attachment_metadata(), 그리고 wp_update_attachment_metadata() 함수를 사용하여 파일을 미디어 라이브러리에 추가할 수 있습니다.

php
// 업로드할 파일의 이름 $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']; }

설명

  1. wp_upload_bits(): 파일을 서버에 업로드합니다.
  2. wp_check_filetype(): 업로드된 파일의 MIME 유형을 확인합니다.
  3. wp_upload_dir(): WordPress 업로드 디렉토리의 정보를 가져옵니다.
  4. wp_insert_attachment(): 업로드된 파일을 WordPress의 미디어 라이브러리에 추가하고, 이 파일의 첨부 파일 ID를 반환합니다.
  5. wp_generate_attachment_metadata(): 첨부 파일의 메타데이터(이미지의 경우 썸네일 등)를 생성합니다.
  6. wp_update_attachment_metadata(): 생성된 메타데이터를 업데이트합니다.

이 예제 코드를 사용하면 파일이 WordPress 서버에 업로드되고, 미디어 라이브러리에 추가되며, 이를 관리할 수 있게 됩니다. 이 과정을 통해 사용자는 WordPress의 기본적인 파일 업로드 기능을 확장하여 특정 상황에 맞게 활용할 수 있습니다.