サムネイル(アイキャッチ画像)の使用を有効化しているのに、何故かサムネイルが表示できない場合の対処方法。
関数 「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” />
 ?>/images/no_image.jpg” alt=”no_image” class=”alignleft” /><br />
<?php endif; ?><br />
<?php the_excerpt(); ?>
</div>
<p><!-- .entry-summary -->[/PHP]</p>
<p> </p>
<p>但し、<span style=)
ちなみに、投稿フォーマットでは抜粋表示をさせようとしても無視されて、the_content で本文表示されてしまう (条件分岐で抜粋表示、でなければ本文表示としている場合)。投稿フォーマットの仕様なのかもしれないが、抜粋で記事一覧をさせている場合は、該当記事を除外し非表示にするしかない。今のところ解決策が見つからず・・・orz