フルサイズの画像ファイル名、取得したいサムネイルのサイズを引数に、サムネイル画像のパスを
取得できればベストなのですが・・・。
これはどこで取得するのが目的ですか?自作プラグインの中で?テーマのどこかのソースの中で?まさか投稿記事の中ということはありませんよねぇ・・・
トピック投稿者
kimy
(@kimy)
使用場所はテーマの中を考えています。
ファイル名から判別させるのはむずかしいのでしょうか?
SQLが書けるならファイル名の取得は可能だと思いますが、サイズはデータベースに入っていましたっけ?
私はSQL構文に自信がありませんのでソース提起まではできませんが(識者の方お願いします)、どちらにしてもやりたいことを具体的に提示したほうがソースを検討していただくにも親切だと思いますよ。
仮に、テーマの中で、アップロードされている複数(場合によっては数百とか数千とか?)の画像から、どこかに記述(カスタムフィールド?記事の文面から?カテゴリーやタグ?)されている画像ファイル名や取得したいサムネイルのサイズを引数に、取得した1つの画像をサイドバーなど?に貼り付ける?
など、やりたいことが見えてこないのと、やりたいことの内容次第ではもっと別のアプローチがあるかもしれませんよ?;)
アップロード画像の各サイズ (thumbnail, medium, large, full) の URL は、アタッチメントの ID が分かれば wp_get_attachment_image_src( $id, $size ) で取得出来ます。
この関数は画像の URL と width, height を配列にして返します。
$image_src = wp_get_attachment_image_src( $id, 'thumbnail' );
/*
array(4) {
[0]=> "http://example.com/wordpress/wp-content/uploads/2009/05/image.jpg"
[1]=> 1024
[2]=> 768
[3]=> false
}
*/
その他の情報については wp_get_attachment_metadata( $id ) で取得できます。
というわけで、まずは画像のアタッチメント ID を取得する方法を考えれば OK です。
# アタッチメント ID をファイル名から探す関数をここに書いていましたが、その関数に思ったのと違うファイルがヒットする可能性が大いにあるなどの問題があると気付いたので削除しました。
トピック投稿者
kimy
(@kimy)
情報ありがとうございます。
やりたいことですが、不動産のページを作成しているのですが、物件を1記事として扱っています。
入力方法をわかりやすくするために、物件の情報を本文にではなく、カスタムフィールドに入れています。
間取り、外観などの写真も、フル画像のパスがカスタムフィールドに入力されているため、なんとかしてファイル名から、サムネイル画像のパスが取得したく、質問しました。
>mizube様
Codexでwp_get_attachment_image_src調べてみました。
たしかに、ファイル名からアタッチメントIDを取得できれば出来そうですね。
ファイル名からアタッチメントIDを取得する関数を考えてみたいと思います。