質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

Q&A

1回答

500閲覧

新規一覧で表示されるアイキャッチ画像をカテゴリー別に自動表示したい

sweeetlife.

総合スコア6

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

0グッド

0クリップ

投稿2020/10/13 10:44

編集2020/10/14 03:14

###前提

現在wordpressのテーマ「J STORK」を利用しています。

初心者のため自分でコードを作成したり、
設置する場所がわからないのでご教授いただきたいと思います。

###実現したいこと

新規一覧に表示される「アイチャッチ画像」を
カテゴリー別に違う画像を自動表示されるように設定したい。

自分なりにコードを変更して追記してみましたが
表示に変わりありませんでした。

私の記事は全国で開催されるレースの予定を紹介するものなので
カテゴリーは地域別として
画像を変えたいと考えています。

追記:記事にアイキャッチが登録されている場合は記事に登録されているほうの画像を優先に表示したいです。

###追記、変更したいページのコード

テーマJStorkで新規一覧の画像の指示をしているコードはこちらです。

ファイル場所:parts_archive_card.php

parts_archive_card.php

1 2<div class="post-list-card cf"> 3 4<?php if (have_posts()) : while (have_posts()) : the_post(); ?> 5 6<article <?php post_class('post-list cf animated fadeIn'); ?> role="article"> 7<a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title_attribute(); ?>"> 8 9<?php 10$cat = get_the_category(); 11$cat = $cat[0]; 12?> 13 14<?php if ( has_post_thumbnail()) : ?> 15<figure class="eyecatch"> 16<?php the_post_thumbnail('home-thum'); ?> 17<span class="cat-name cat-id-<?php echo $cat->cat_ID;?>"><?php echo $cat->name; ?></span> 18</figure> 19<?php else: ?> 20<figure class="eyecatch noimg"> 21<img src="<?php echo get_theme_file_uri('/library/images/noimg.png'); ?>"> 22<span class="cat-name cat-id-<?php echo $cat->cat_ID;?>"><?php echo $cat->name; ?></span> 23</figure> 24<?php endif; ?> 25 26<section class="entry-content cf"> 27<h1 class="h2 entry-title"><?php the_title(); ?></h1> 28 29<p class="byline entry-meta vcard"> 30<span class="date gf updated"><?php the_time('Y.m.d'); ?></span> 31<span class="writer name author"><span class="fn"><?php the_author(); ?></span></span> 32</p> 33 34<div class="description"><?php the_excerpt(); ?></div> 35 36</section> 37</a> 38</article> 39 40<?php endwhile; ?> 41 42 43<?php elseif(is_search()): ?> 44<article id="post-not-found" class="hentry cf"> 45<header class="article-header"> 46<h1>記事が見つかりませんでした。</h1> 47</header> 48 49<section class="entry-content"> 50 51<p>お探しのキーワードで記事が見つかりませんでした。別のキーワードで再度お探しいただくか、カテゴリ一覧からお探し下さい。</p> 52 53<div class="search"> 54<h2>キーワード検索</h2> 55<?php get_search_form(); ?> 56</div> 57 58 59<div class="cat-list cf"> 60<h2>カテゴリーから探す</h2> 61<ul> 62<?php $args = array( 63'title_li' => '', 64); ?> 65<?php wp_list_categories($args); ?> 66</ul> 67</div> 68 69</section> 70 71</article> 72 73<?php else : ?> 74 75<article id="post-not-found" class="hentry cf"> 76<header class="article-header"> 77<h1>まだ投稿がありません!</h1> 78</header> 79<section class="entry-content"> 80<p>表示する記事がまだありません。</p> 81</section> 82</article> 83 84<?php endif; ?> 85</div> 86 87

追記してみたコード

カテゴリー別に違う画像を表示する方法を検索していたところ、
説明してくれている方がいたので参考に使用させてもらいました。
参考URL:http://ruh.sunnyday.jp/archives/507

説明のコードはこちら

<?php if (have_posts()) : while (have_posts()) : the_post(); ?> <?php if (has_post_thumbnail()): ?> <?php the_post_thumbnail( array(横幅,高さ) ); ?> //アイキャッチ指定時の画像 <?php elseif(in_category('カテゴリ1のスラッグ')): ?><img src="カテゴリ1用アイキャッチ画像" /> <?php elseif(in_category('カテゴリ2のスラッグ')): ?><img src="カテゴリ2用アイキャッチ画像" /> <?php elseif(in_category('カテゴリ3のスラッグ')): ?><img src="カテゴリ3用アイキャッチ画像" /> <?php else: ?><img src="カテゴリ「未設定」用アイキャッチ画像" /><?php endif; ?> <h2><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h2> <?php the_content(); ?> <?php endwhile; ?>

###追記してみたコード

画像のみ変更したかったので

<?php if (has_post_thumbnail()): ?> <?php the_post_thumbnail( array(横幅,高さ) ); ?> //アイキャッチ指定時の画像 <?php elseif(in_category('カテゴリ1のスラッグ')): ?><img src="カテゴリ1用アイキャッチ画像" />

画像をカテゴリー別に指示するコードと思われる
ところのみを使用してみました。

変更後のコード

<?php if (have_posts()) : while (have_posts()) : the_post(); ?> <article <?php post_class('post-list cf animated fadeIn'); ?> role="article"> <a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title_attribute(); ?>"> <?php $cat = get_the_category(); $cat = $cat[0]; ?> <figure class="eyecatch"> //カテゴリー別のアイキャッチ参考コード:http://ruh.sunnyday.jp/archives/507 memo重複しているためオリジナルの <?php if ( has_post_thumbnail()) : ?>とを一行消した。 // <?php if (has_post_thumbnail()): ?> <?php elseif(in_category('hokkaido')): ?><img src="https://runbike.net/wp-content/uploads/2018/04/b92efca0590affe217ee7b6eae80a176-e1524543926325.jpg" /> <?php else: ?><img src="カテゴリ「未設定」用アイキャッチ画像" /><?php endif; ?> //ここまで// <?php the_post_thumbnail('home-thum'); ?> <span class="cat-name cat-id-<?php echo $cat->cat_ID;?>"><?php echo $cat->name; ?></span> </figure> <?php else: ?> <figure class="eyecatch noimg"> <img src="<?php echo get_theme_file_uri('/library/images/noimg.png'); ?>"> <span class="cat-name cat-id-<?php echo $cat->cat_ID;?>"><?php echo $cat->name; ?></span> </figure> <?php endif; ?>

###結果

試しに北海道のカテゴリーで表示を試みてみましたが
変わりなく、オリジナルで設定されている、
「noimg.png」の画像が表示されていました。

コード内の「figure class」あたりで変更、追記が
必要なのかなとは想像しているのですが
どうしたらいいのかは、わかりません。

記事はカスタム投稿タイプで作成したものばかりなので
そこも原因なのかなと推測しています。

最後に

質問もうまく伝えられているか自信がありませんが
どうか、このコードでわかる方回答をどうぞよろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tabuu

2020/10/13 23:48

質問のタグがHTTPSになっているのでWordPressとしておいてください。 仕様ですが、 記事にアイキャッチが登録されている場合も、カテゴリの画像に差し替えたいということでしょうか? それとも、カテゴリの画像と記事のアイキャッチ画像と両方表示されたいのでしょうか? あと、変更後のコードに以下のコードが2回あるのでコピペミスかと思います。 <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
sweeetlife.

2020/10/14 03:18

修正依頼をありがとうございます。 タグ、変更後のコード削除の修正を完了いたしました。 また、仕様について 「記事にアイキャッチが登録されている場合は記事のアイチャッチ画像を優先に表示したい。」 です。
guest

回答1

0

変更後のコードがコメント入っていたりインデント揃っていなかったりで判りづらいのですが
以下のような内容で大丈夫だと思います。
ただしthe_post_thumbnailで出力されるタグと同等のタグをカテゴリ画像にも付ける必要があります。
in_category('hokkaido')でひっかかるかは未検証です。

PHP

1<figure class="eyecatch"> 2 <?php if (has_post_thumbnail()): ?> 3 <?php the_post_thumbnail('home-thum'); ?> 4 <?php elseif(in_category('hokkaido')): ?> 5 <img src="https://runbike.net/wp-content/uploads/2018/04/b92efca0590affe217ee7b6eae80a176-e1524543926325.jpg" /> 6 <?php else: ?> 7 <img src="カテゴリ「未設定」用アイキャッチ画像" /> 8 <?php endif; ?> 9 <span class="cat-name cat-id-<?php echo $cat->cat_ID;?>"><?php echo $cat->name; ?></span> 10</figure>

投稿2020/10/14 23:16

tabuu

総合スコア2480

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問