私は自分のやり方でwp_attachment_metadata
を手に入れたいです。サイズ(サムネイル、大、中、小)を分けたい。データベースのメタ値は次のようになります。
a:5:{s:5:"width";i:660;s:6:"height";i:320;s:4:"file";s:39:"2013/07/debut
-busana-muslim-new-yor.jpg";s:5:"sizes";a:2:{s:9:"thumbnail";a:4:{s:4:"f
ile";s:39:"debut-busana-muslim-new-yor-150x150.jpg";s:5:"width";i:150;s:
6:"height";i:150;s:9:"mime-type";s:10:"image/jpeg";}s:6:"medium";a:4:{s:
4:"file";s:39:"debut-busana-muslim-new-yor-300x145.jpg";s:5:"width";i:30
0;s:6:"height";i:145;s:9:"mime-type";s:10:"image/jpeg";}}s:10:"image_met
a";a:10:{s:8:"aperture";i:0;s:6:"credit";s:0:"";s:6:"camera";s:0:"";s:7:
"caption";s:0:"";s:17:"created_timestamp";i:0;s:9:"copyright";s:0:"";s:1
2:"focal_length";i:0;s:3:"iso";i:0;s:13:"shutter_speed";i:0;s:5:"title";
s:0:"";}}
さて、私は立ち往生しています。その配列を分離する方法がわかりません。画像のサイズとURLを取得するためにその配列を分離する方法は誰でも知っています。
2つの方法があります。
$attachment_meta = get_post_meta( $post->ID, '_wp_attachment_meta', true );
array()
を返します。
$width = $attachment_meta['width'];
この場合、3番目のパラメータとしてのtrue
は特に重要です。クエリされるメタデータはserialized配列なのでです。それをsingleとして返す必要があります。そうでない場合は、配列の最初の項目が直列化された配列になることを除いて、配列を返すことになります。乱雑です。 true
を渡すだけで、シリアル化されていない配列が返されます。
この関数は上記のget_post_meta()
呼び出しの一種のラッパーです。
$attachment_meta = wp_get_attachment_metadata( $post->ID );
どちらの場合も、$post
はattachmentであり、添付ファイルのアップロード先の親投稿ではありません。