Home > WordPress > WordPress で投稿の添付画像を取得・表示するためにテンプレートに書くプログラムなど。

WordPress で投稿の添付画像を取得・表示するためにテンプレートに書くプログラムなど。

[読了時間の目安:約 4 分]

以前、とある案件で WordPress を導入したとき、投稿の添付画像を表示する機能を導入しました。
ヒーヒー言いながら作ったことを思い出しますね……。

で、今回また別の案件で使うことになったので、その部分だけエントリーとして残しておきます。
せっかくの資源は使い回さないと、もったいないですからねぇ。
リサイクルリサイクル。

うろ覚えなので、とりあえずコードだけ載せときます。
思い出したり気が向いたら解説する……かも。

<?php while (have_posts()) : the_post(); ?>
<?php
$files = get_children("post_parent=$id&amp;post_type=attachment&amp;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」のページにサンプルコードが載ってるんですが、添付画像を取得するだけならこれで充分なはずなんですよね。
というか、それの方が間違いなく簡単なんじゃないかと思うんやけどなぁ……。
これじゃしたいことができないから自分で書いたはずなんですけど、何がしたかったんでしょうか……。
投稿タイトルの取得とかかな?
まぁ、何かの役に立つかも知れないのでとりあえず掲載しときます。

Comments:2

osamuya 11-12-27 (火) 1:33

通りすがりの者ですみません。いろいろ探しまわっているのですが、kbysbtmupさんが一番ちゃんと書かれていて参考にさせて頂きました。ありがとうございます。
ついては、1つ質問があるのですが、
投稿画像のサムネイルから投稿記事にリンクしたいと考えているのですが、permalinkを取得するために、
<a href="”>…をループの中に組み込んでいるのですが、画像を投稿していない記事のpermalinkも取得してしまいます。wp_get_atachment_image_src();からは画像を投稿した記事のURLは取得できないようですし、いずれにしろループの一番外側でpermalinkを取得しないといけない感じになっています。画像が投稿されていない記事はスキップしたいのですが、どのようにやればよいかご存知でしょうか?
もし知っていましたらご教授願います。いろいろやっているのですが、今の私には知識不足で難しい限りです。

通りすがりの者が不躾に申し訳ありませんが、お時間ありましたらよろしくお願いします。

osamuya 11-12-27 (火) 1:38

追伸:失敗しているコードです。

<a href="”> //ここが全部の記事に出てきてしまいます。投稿画像がない場合はスキップしたいのですが…。。。
<?php
$files = get_children("post_parent=$id&post_type=attachment&post_mime_type=image");
if (empty($files)){
continue; //ここでスキップしても先のが残ってしまうのです。
}else{
$keys = array_keys($files);
$lastkeys = array_pop($keys);
$num=$lastkeys;
$thumb=wp_get_attachment_image_src($num,’thumbnail’);
print ‘post_title . ‘の画像” title=”‘.$post->blog_title.’”>’ . “n”;
}
?>

Comment Form
Remember personal info

Trackbacks:0

Trackback URL for this entry
http://blog.btmup.com/wordpress/wordpress-post-attachment-image-template.html/trackback
Listed below are links to weblogs that reference
WordPress で投稿の添付画像を取得・表示するためにテンプレートに書くプログラムなど。 from btmup Blog

Home > WordPress > WordPress で投稿の添付画像を取得・表示するためにテンプレートに書くプログラムなど。

リンク
フィード
メタ情報

このページのトップへ