WordPressでメディアへ画像をアップロードする

wp_insert_attachmentという関数を用いることで添付したファイルをメディアへアップロードすることができる。

$attachment = array(
  'post_mime_type' => $wp_filetype['type'],
  'post_title'     => sanitize_file_name( $filename ),
  'post_content'   => '',
  'post_status'    => 'inherit'
);
$attach_id = wp_insert_attachment( $attachment, $filename, $parent_post_id ); 

$attachmentで添付ファイルにかんする情報を指定する。また、ファイルのパスは絶対パスを指定しなければならない。
$parent_post_idは紐付ける記事のidを指定できる。必要ない場合は0とする。
成功すると返り値として添付ファイルのidが得られる。
この処理のあと、


$attach_data = wp_generate_attachment_metadata( $attach_id, $filename ); wp_update_attachment_metadata( $attach_id, $attach_data );

このようにメタデータを生成してデータベースの更新を行う必要がある。