Skip to Content
Go Back
안형우

안녕하세요. 14년차 풀스택 웹개발자 안형우입니다. 이 블로그에서는 WordPress, PHP, CSS, 사용성, 리눅스 서버 등 풀스택 웹개발에서 마주하는 다양한 문제 상황과 해결책, 필요한 개념들을 다룹니다. 👉 소개


작업물

📌 워드프레스, 답답한 빌더와 플러그인 대신 시원하게 커스터마징하기 2023-01-15
📌 아무도 말하지 않는 PHP의 좋은 점 2018-10-13
📌 유지보수하기 쉬운 CSS 전략(슬라이드) 2016-12-20
📌 워드프레스 테마에서 템플릿 파일 매칭 순서 2013-05-12

[워드프레스] 파일 업로드 코드 예제

말 그대로 예제다. 시간이 없어서 설명은 생략하고 코드만.

if( ! empty($_FILES)){
  $wp_upload_dir = wp_upload_dir();

  require_once(ABSPATH . 'wp-admin/includes/file.php');
  $fileinfo = wp_handle_upload($_FILES['첨부파일'], array('test_form' => FALSE ));
  $wp_filetype = wp_check_filetype(basename($fileinfo['file']), null );

  $attachment = array(
    'guid' => $wp_upload_dir['url'] . '/' . basename($fileinfo['file']),
    'post_mime_type' => $wp_filetype['type'],
    'post_title' => preg_replace('/\.[^.]+$/', '', basename($fileinfo['file'])),
    'post_content' => '',
    'post_status' => 'inherit'
  );

  $attach_id = wp_insert_attachment( $attachment, $fileinfo['file'], $post_id);

  require_once(ABSPATH . 'wp-admin/includes/image.php');
  $attach_data = wp_generate_attachment_metadata( $attach_id, $fileinfo['file'] );
  wp_update_attachment_metadata( $attach_id, $attach_data );
}

클라이언트 쪽은 다음 코드를 참고. 역시 시간이 없어서 foreach를 못 돌렸다. 알아서 돌리길.

$args = array(
  'post_type' => 'attachment',
  'numberposts' => null,
  'post_status' => null,
  'post_parent' => $post->ID
);
$attachments = get_posts($args);

if($attachments){?>
  <p>
    첨부파일 :
    <a href="<?=wp_get_attachment_url($attachments[0]->ID)?>">
      <?=apply_filters('the_title', $attachments[0]->post_title);?>
    </a>
  </p>
<?}?>

안녕하세요. 14년차 풀스택 웹개발자 안형우입니다. 이 블로그에서는 WordPress, PHP, CSS, 사용성, 리눅스 서버 등 풀스택 웹개발에서 마주하는 다양한 문제 상황과 해결책, 필요한 개념들을 다룹니다. 👉 소개


작업물

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다