プラグインがあるかもしれませんが、子テーマ修正にて対応
覚書として。
・アイキャッチ画像は原則として、すべての記事において設定している前提(設定していない場合は作業ミス)。
・前提を踏まえたうえで、特定カテゴリに属する記事において、「記事内の最初の画像を、アイキャッチとして表示」させたい。
・ただし特定カテゴリに属する記事において、一切の画像が使われていない場合は、アイキャッチ画像を表示させる。
つまり、本記事は「アイキャッチ画像の設定忘れ対策」や「アイキャッチ画像の設定の手間を省くために自動化する」という観点にはそぐわない内容になっています。
現在こちらで利用しているテンプレート「yStandard」で実装してみました。
ファイルとしては、
・template-parts\content\archive.php
・template-parts\content\archive-card.php
※アーカイブ
・template-parts\entry\entry-related.php
※関連記事(各記事の下部に表示できる、同一カテゴリの別記事へのリンク)
をいじった形です。
他にもアイキャッチ画像を読み込む項目はある(ブログカードなど)のですが、これらは状況を見て修正しようと考えています。
以下が実際に書き換えた内容です。
なお、「特定カテゴリの場合」を指定するためのカテゴリID、具体的にはif文の「array(■, ■, ■)」という表記は、本来は「array(1, 2, 3)」といった形で数字等でカテゴリを指定する必要がありますので、このままコピペしても使えません。運用するwordpressで確認した上で指定してください(カテゴリIDを確認する方法はこちらなどが分かりやすいです)。
archive.phpおよびarchive-card.php(修正前)
<?php if ( has_post_thumbnail() ) : ?> <figure class="entry-list__figure ratio__item ratio__image"> <?php the_post_thumbnail( 'post-thumbnail', array( 'class' => 'entry-list__image', ) ); ?> </figure>
archive.phpおよびarchive-card.php(修正後)
<?php if ( has_post_thumbnail() ) : ?> <figure class="entry-list__figure ratio__item ratio__image"> <?php if ( in_category( array(■, ■, ■) ) ) : ?> <img src="<?php echo catch_that_image(); ?>" alt="<?php the_title(); ?>" width="100%" class="entry-list__image"> <?php else :?> <?php the_post_thumbnail( 'post-thumbnail', array( 'class' => 'entry-list__image', ) ); ?> <?php endif; ?> </figure>
entry-related.php(変更前)
<?php if ( has_post_thumbnail() ) : ?> <figure class="entry-list__figure ratio__image"> <?php the_post_thumbnail( 'post-thumbnail', array( 'class' => 'entry-related__image' ) ); ?> </figure>
entry-related.php(変更後)
<?php if ( has_post_thumbnail() ) : ?> <figure class="entry-list__figure ratio__image"> <?php if ( in_category( array(■, ■, ■) ) ) : ?> <img src="<?php echo catch_that_image(); ?>" alt="<?php the_title(); ?>" width="100%" class="entry-related__image"> <?php else :?> <?php the_post_thumbnail( 'post-thumbnail', array( 'class' => 'entry-related__image' ) ); ?> <?php endif; ?> </figure>