フォームから送られてきたファイルをメディアに登録されるようにするプログラムを作っていたのですが、実際にメディアには登録されるけど一覧でサムネイルが表示されない・・・
で、Codexをよく見たら、wp_insert_attachmentのあとに下記2つの関数も実行しなくてはならないとのこと
wp_generate_attachment_metadata
wp_update_attachment_metadata
さらにこの関数を実行するには、
require_once( ABSPATH . 'wp-admin/includes/image.php' );
の必要があります。
つまりこんな感じ。
[PHP]
require_once( ABSPATH . 'wp-admin/includes/image.php' );
$attachment = array(
'guid' => "(ファイルのURL)",
'post_mime_type' => "(ファイルのタイプ)",
'post_title' => "(ファイルのタイトル)",
'post_content' => '',
'post_status' => 'inherit'
);
$attach_id = wp_insert_attachment( $attachment, "(ファイル名)", 0);
$attach_data = wp_generate_attachment_metadata( $attach_id, "(ファイルのパス)");
wp_update_attachment_metadata( $attach_id, $attach_data );
[/PHP]
これで、メディアに登録される際にサムネイルも生成されるようになりました。