【WordPress】アーカイブページでサムネイル画像を表示する方法【投稿画面でサムネイル未設定の場合にもデフォルト画像を表示】

記事一覧などのアーカイブページで、各記事のサムネイルを表示させるコードを紹介します。投稿画面でサムネ画像を設定していない場合にもデフォルトで設定した画像が表示されます。

目次

PHPのif文の書き方

if文の条件分岐で、投稿画面でサムネ画像を用意した場合と用意していない場合の設定をします。

<!-- サムネイル -->
<div class="post-img-wrapper">

  <?php if (has_post_thumbnail()) : ?>
    <!-- 投稿画面で設定したサムネイル画像 -->
    <?php the_post_thumbnail(); ?>    

  <?php else : ?>
    <!-- 投稿画面でサムネ未設定の場合に表示される画像 -->
    <img src="<?php echo esc_url(get_template_directory_uri() . '/image/default-thumbnail.jpg'); ?>" alt="都会の夜景" class="default-thumbnail">
  <?php endif; ?>

</div>
コード解説
  • if文で条件分岐し、その投稿にサムネイルが設定されていれば「has_post_thumbnail()」、サムネイルを「the_post_thumbnail()」で表示させる。
  • サムネイルが設定されてなければ、下記コードで設定した画像を使う(url読み出しはエスケープ処理をしましょう)。
<img src="<?php echo esc_url(get_template_directory_uri() . '/image/default-thumbnail.jpg'); ?>" alt="都会の夜景" class="default-thumbnail">

デフォルトのサムネイル画像へのパスは、各自で異なりますので適宜変更して下さい。

CSSの参考コード

CSSはお好みで設定すれば良いですが、参考コードをしたに置いておきます。

注意点としては、「the_post_thumbnail()」で表示させたimgタグには、WordPressによって自動的に「wp-post-image」というクラス属性が付与されますので、これに対してCSSを書いて下さい。

// サムネイル画像の枠
.post-img-wrapper {
  height: 200px; //任意の数字に設定
  width: 100%;
  max-width: 340px; //任意の数字に設定
  max-height: 200px; //任意の数字に設定
  overflow: hidden;
}

// サムネイル画像
.wp-post-image, //サムネイル画像
.default-thumbnail{ //デフォルト設定のサムネイル画像(投稿画面でサムネ設定しなかった場合に表示)
  object-fit: cover;
  transition: all .6s ease;
  width: 100%;
  height: 100%;
  max-width: 340px; //任意の数字に設定
  max-height: 200px; //任意の数字に設定
}

// サムネイルのホバー時拡大アニメーション(オマケ)
@media (hover: hover) {
  .post_wrapper:hover .wp-post-image,
  .post_wrapper:hover .default-thumbnail{
    transform: scale(1.1);
  }
}
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

■清水WEB制作代表
■コーディング:WordPress(オリジナルテーマ制作等)・HTML・Sass・FLOCSS・JavaScript(jQuery)等
■集客力:YouTube/Instagram/ブログでそれぞれ登録者数16000人/フォロワー13000人/月間最大アクセス50000PVの集客実績があります
■文章作成:博士号所有、会社員時代は科学雑誌に寄稿していたので文章作成も得意です
■写真技術:Amazon Kindle出版で、写真集・撮影編集解説書を5冊好評発売中です

目次