アイキャッチ画像を表示する
目次
1. アイキャッチ画像とは
アイキャッチ画像とは、サムネイル、サムネ画像のことです。
典型的な使い方は、複数の記事のリスト表示するページで、その記事の内容をイメージしやすい画像をアイキャッチ画像として表示します。WordPressの場合は、1つの投稿記事について、1つのアイキャッチ画像を指定できます。
このサイトのトップページでも利用しています。
2. 今回作成するもの
トップページに表示する抜粋記事一覧に、アイキャッチ画像を一緒に表示します。もし、アイキャッチ画像が指定されていない場合は、代わりの画像を表示します。画像サイズは160x120pxです。
編集後のページは、次のようになります。
3. テーマをカスタマイズする
3-1 代替画像を用意する
アイキャッチ画像が未指定の場合の代替画像を用意します。画像は表示サイズに合わせるようにします。
画像を作成したら、テーマフォルダ下の画像を入れるフォルダに入れておきます。
3-2 functions.phpを編集する
functions.phpを編集して、アイキャッチ画像の機能を有効化します。また、その画像サイズを指定します。
functions.php(この2行を追記)
add_theme_support('post-thumbnails'); set_post_thumbnail_size(160, 120, true);
add_theme_support()関数は、引数で指定した機能を有効にする関数です。アイキャッチ画像を有効にするには、引数に’post-thumbnails’を指定します。
set_post_thumbnail_size()は、アイキャッチ画像のサイズを指定します。デフォルトでは150x150pxです。ここでは表示したい画像サイズに合わせて横160px、縦120pxの順に指定します。3番目の引数では、画像の縦横比が合わない画像を指定した場合に画像を自動的に切り取るかどうかを指定できます。今回の例では、常に160x120pxになるようにtrueを指定します。
3-3 content.phpを編集する
アイキャッチ画像をHTML出力するコードを挿入します。
content.php
<article class="post"> <header> <h1 class="post-title"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h1> <p class="post-meta"><?php the_date(); ?></p> </header> <!-- ここから --> <figure class="thumbnail"> <?php if(is_home()) { if(has_post_thumbnail()) { the_post_thumbnail(); } else { echo '<img src="'.get_template_directory_uri().'/img/no_image.png" width="160" height="120"/>'; } } ?> </figure> <!-- ここまで --> <div class="post-content"> <?php if(is_home()) { the_excerpt(); } else { the_content(); } ?> </div> </article>
コードの説明です。
if(is_home()) { // フロントページの場合の処理(画像を表示する) }
フロントページを表示した場合のみ画像を表示する処理を行います。カッコ内の処理は、
if(has_post_thumbnail()) { the_post_thumbnail(); } else { echo '<img src="'.get_template_directory_uri().'/img/no_image.png" width="160" height="120"/>'; }
1行目のhas_post_thumbnail()は、処理中の投稿にアイキャッチ画像が指定されている場合はtrue、未指定の場合はfalseを返すWordPress関数です。
アイキャッチ画像が指定されている場合は、2行目のthe_post_thumbanil()関数で、画像を出力するHTMLコードを出力します。
アイキャッチ画像が指定されていない場合は、4行目のコードで代替画像を表示するHTMLコードを出力します。get_template_directory_uri()は、テーマフォルダのルートディレクトリへのURLを返すWordPress関数です。このコードが実行すると、次のようなHTMLが出力されます。
<img src="サイトURL/wp-content/themes/テーマフォルダ名/img/no_image.png" width="160" height="120"/ >
ここまで編集したところで、一度サイトを実行してみます。次のように表示されれば成功です。
まだどちらの投稿記事にもアイキャッチ画像を指定していないので、代替画像が表示されます。
3-4 アイキャッチ画像を指定する
ダッシュボード>投稿>投稿を編集を開き、アイキャッチ画像を指定します。
(1) 画面右上の表示オプションタブを開き、(2)アイキャッチ画像にチェックを入れ、(3)新たに表示された「アイキャッチ画像を設定」のリンクを開いて、メディアライブラリから画像を指定orアップロードします。
再度サイトを実行すると、次のように表示されます。
3-5 style.cssを編集する
最後に、スタイルを指定します。ここでは、アイキャッチ画像を左よせに指定します。
style.css(追記)
article.post { overflow: hidden; } figure { margin: 0; padding: 0; } article.post figure.thumbnail { margin: 10px; float: left; }
※2013.8.17修正 article.postのスタイル指定を追加
以上で、テーマのカスタマイズは終了です。
4. 動作を確認する
サイトを実行してみます。次のスクリーンショットのように、
- アイキャッチ画像を指定した投稿は、その画像が表示される
- アイキャッチ画像を指定していない投稿は、代替画像が表示される
となればOKです。
関連記事
- 次の記事:
- 前の記事:index.phpをカスタマイズするー第14回抜粋を表示する
WordPress Codex
- add_theme_support()
- set_post_thumbnail_size()
- has_post_thumbnail()
- the_post_tget_template_directory_uri()
「index.phpをカスタマイズする」の記事
- 第20回 ギャラリー表示をカスタマイズする
- 第19回 ページ送りを設置する
- 第18回 カテゴリやタグを表示する
- 第17回 記事の表示順、表示数を変更する – 補足
- 第16回 記事の表示順、表示数を変更する
- 第15回 アイキャッチ画像を表示する << この記事です
- 第14回 抜粋を表示する
- 第13回 パンくずリストを設置する
- 第12回 ページの種類で分岐処理する
- 第11回 カスタム投稿タイプを作成する
- 第10回 カスタム背景を設置する
- 第9回 カスタムヘッダーを設置する
- 第8回 カスタムメニューを設置する
- 第7回 コメントフォームをカスタマイズする
- 第6回 コメントフォームを設置する
- 第5回 サイドバーを設置する
- 第4回 functions.phpとは
- 第3回 テンプレートフォルダ内の画像を使用する
- 第2回 テンプレートパーツ化する
- 第1回 HTMLからWPテーマを作成する