ダリの雑記:WEBプログラム版

wp_insert_attachmentだけではサムネイルが作られない

フォームから送られてきたファイルをメディアに登録されるようにするプログラムを作っていたのですが、実際にメディアには登録されるけど一覧でサムネイルが表示されない・・・

で、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]

これで、メディアに登録される際にサムネイルも生成されるようになりました。

モバイルバージョンを終了