サムネイル(アイキャッチ画像)が表示できない場合の対処方法

サムネイル(アイキャッチ画像)の使用を有効化しているのに、何故かサムネイルが表示できない場合の対処方法。

関数 「wp_get_attachment_image_src」 を使用して、サムネイル(アイキャッチ画像)のURL を取得し、表示させる方法。


関数「wp_get_attachment_image_src」の詳細は以下の通り。

[PHP][/PHP]

Parameters (変数)

  • $attachment_id
    アタッチメントID デフォルトでは指定なし。
  • $size
    サイズ指定 (thumbnail, medium, large, full もしくは array( 100, 100 )など数値で指定可) デフォルトでは thumbnail
  • $icon
    アタッチメントを示すメディア・アイコン。デフォルトでは false

Return Value (戻り値)
サムネイル(アイキャッチ画像)の「URL、横幅、高さ」が配列で返ってくる。

  • [0] => url
  • [1] => width
  • [2] => height

 

サムネイルを表示したいテンプレートに直接コードを記入することは可能だが、今回は functions.php で新しい関数を作成して、画像を表示させる。

1.functions.php の最下部に下記のコードを追加。

[PHP]function get_thumb_image_url() {
$image_id = get_post_thumbnail_id(); //アタッチメントIDの取得
$image_url = wp_get_attachment_image_src($image_id, array( 100, 100 ) ); //100px x 100pxサイズのアイキャッチ画像のURLを取得
echo $image_url[0];
}[/PHP]

2.サムネイルを表示したいテンプレートのループ内に下記のコードを記入。

[PHP]「no_image.jpg (100px x 100px)」で、テーマの images フォルダに格納。元記事へのリンク、画像の左寄せ、右寄せなどのスタイリングは適宜変更してください。

[PHP]


” class=”alignleft” />

投稿フォーマット(gallery, aside, imageなど)で作成した記事には適用できない模様。uploadsフォルダにサムネイル画像は生成されるのだが、上記の方法でも表示することが出来ない。自分の環境だけで発生している現象かもしれないが・・・。

ちなみに、投稿フォーマットでは抜粋表示をさせようとしても無視されて、the_content で本文表示されてしまう (条件分岐で抜粋表示、でなければ本文表示としている場合)。投稿フォーマットの仕様なのかもしれないが、抜粋で記事一覧をさせている場合は、該当記事を除外し非表示にするしかない。今のところ解決策が見つからず・・・orz

 

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


*

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>