以前、とある案件で WordPress を導入したとき、投稿の添付画像を表示する機能を導入しました。
ヒーヒー言いながら作ったことを思い出しますね……。
で、今回また別の案件で使うことになったので、その部分だけエントリーとして残しておきます。
せっかくの資源は使い回さないと、もったいないですからねぇ。
リサイクルリサイクル。
うろ覚えなので、とりあえずコードだけ載せときます。
思い出したり気が向いたら解説する……かも。
<?php while (have_posts()) : the_post(); ?>
<?php
$files = get_children("post_parent=$id&post_type=attachment&post_mime_type=image");
if (empty($files)){
print "none";
}else{
$keys = array_keys($files);
$lastkeys = array_pop($keys);
$num=$lastkeys;
$thumb=wp_get_attachment_image_src($num,'medium');
print '<img src="' . $thumb[0] . '" width="' . $thumb[1] . '" height="' . $thumb[2] . '" alt="' . $post->post_title . 'の画像">' . "n";
}
?>
<?php endwhile; ?>
一応、現時点で覚えていることを書いておくと、
- 「get_children」で投稿画像を取得することを設定
- それを基に最新版の投稿を取得
- 「wp_get_attachment_image_src」で添付画像を取得、配列に格納
- 配列から画像のパスと幅と高さを取り出し
って感じですかね。たぶん……。
「wp_get_attachment_image_src」の第二引数が、取得する画像のサイズです。
(サムネイル:「thumbnail」、中サイズ:「midium」、大サイズ:「large」、フルサイズ:「full」)
»Function Reference/wp get attachment image src « WordPress Codex
»関数リファレンス/get children - WordPress Codex 日本語版
「get_children」のページにサンプルコードが載ってるんですが、添付画像を取得するだけならこれで充分なはずなんですよね。
というか、それの方が間違いなく簡単なんじゃないかと思うんやけどなぁ……。
これじゃしたいことができないから自分で書いたはずなんですけど、何がしたかったんでしょうか……。
投稿タイトルの取得とかかな?
まぁ、何かの役に立つかも知れないのでとりあえず掲載しときます。