先日作成したVirtuの別サイト、
List Category Post+Featured Image From URL というプラグインを使って、
外部(Flickr)から画像を取り込むようにカスタマイズした。
ネックだったのは、これだとカテゴリ別アーカーブページのリストにサムネール画像が表示されないこと。
あきらめていたのだが、ふとしたことから解決策を発見。
しかもプラグインなしというのがすごい!
参考サイト:記事内の最初に使用されている画像を取得する[WordPress]
コードを追加したファイルは子テーマのfunctions.phpと、templates/content.phpの二つ。
functions.php
以下のコードを追加する
function catch_that_image() { global $post, $posts; $first_img = ''; ob_start(); ob_end_clean(); $output = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $post->post_content, $matches); $first_img = $matches [1] [0]; if(empty($first_img)){ //Defines a default image $first_img = "/images/default.jpg"; } return $first_img; }
templates/content.php
<div class=”col-md-5 post-image-container”><div class=”imghoverclass img-margin-center” itemprop=”image” itemscope itemtype=”https://schema.org/ImageObject”>のなかを以下のように変更する。
<a href="<?php the_permalink() ?>" title="<?php echo esc_attr(get_the_title()); ?>"> <img src="<?php echo catch_that_image(); ?>" alt="<?php the_title(); ?>" /> </a>
コメント