• 解決済 muro

    (@muromuro)


    $path = wp_upload_dir();
    $path = $path["url"];
    $path .=  "/example.jpg";
    $wp_filetype = wp_check_filetype(basename($path), null );
    $attachment = array(
    	'post_mime_type' => $wp_filetype['type'],
    	'post_title' => "test",
    	'post_content' => '',
    	'post_status' => 'inherit',
    );
    $id = wp_insert_attachment( $attachment, $path, $post->ID );
    echo wp_get_attachment_image( $id, "full" );

    wp-content/uploadsフォルダに画像ファイルを直接置き、上記のようなコード使って管理画面のメディアへの投稿を行いました。
    その結果、フォルダに置いた画像はメディアとして登録され、wp_get_attachment_imageを使ってサイト上に画像を表示することはできるのですが、メディアの一覧および詳細画面では先ほどの画像のサムネイルが表示されていないうえに、フォルダの方を見ても各サイズに縮小された画像が生成されていません。
    サムネイルを生成するための関数はあるのでしょうか?

1件の返信を表示中 - 1 - 1件目 (全1件中)
  • トピック投稿者 muro

    (@muromuro)

    すみません、自己解決しました。

    http://www.imamura.biz/blog/cms/wordpress/tips/16736

    上記サイトのソースをもとに少々変更し、それを実行したあとにプラグイン「Regenerate Thumbnails」を使えば、uploadに直接置いた画像をメディアに登録でき、サムネイル表示もできました。

    $filename = "2014/09/example.jpg";
    $wp_filetype = wp_check_filetype($filename, null );
    $wp_upload_dir = wp_upload_dir();
    $attachment = array(
    	'guid' => $wp_upload_dir['url'] . '/' . $filename,
    	'post_mime_type' => $wp_filetype['type'],
    	'post_title' => preg_replace( '/\.[^.]+$/', '', basename( $filename ) ),
    	'post_content' => '',
    	'post_status' => 'inherit',
    );
    $attach_id = wp_insert_attachment( $attachment, $filename, $post->ID );
    require_once( ABSPATH . 'wp-admin/includes/image.php' );
    $attach_data = wp_generate_attachment_metadata( $attach_id, $filename );
    wp_update_attachment_metadata( $attach_id, $attach_data );
1件の返信を表示中 - 1 - 1件目 (全1件中)
  • トピック「wp_insert_attachmentを使ったメディア投稿について」には新たに返信することはできません。