WordPressで記事を書いたり、制作事例等を投稿していると、うっかりアイキャッチ – サムネイル画像を設定することを忘れてしまうこともあります。
そんな時は下記のコードを利用してみましょう。
WordPressのアイキャッチ画像が無い場合、投稿記事の一番最初の画像を表示する。しかし、投稿記事に画像が無いばあいは、任意の画像を表示させるコードです。
まず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 = "替りの画像のフルパス"; } return $first_img; }
次にアイキャッチ画像を表示させていテンプレートのphpファイルに下記を記入します。
<?php if (has_post_thumbnail()) : ?> <div class="home-thumb"> <a href="<?php the_permalink(); ?>" title="<?php echo esc_attr( the_title_attribute( 'echo=0' ) ); ?>"> <?php the_post_thumbnail(large); ?> </a> </div> <?php else : ?> <div class="home-thumb"> <a href="<?php the_permalink(); ?>" title="<?php echo esc_attr( the_title_attribute( 'echo=0' ) ); ?>"> <img src="<?php echo catch_that_image(); ?>" alt="" width="640" height="340" /> </a> </div> <?php endif; ?>
4行目の
<?php the_post_thumbnail(large); ?>
(large)部分は空白でもいいですし、アイキャッチの大きさの設定部分になっています。
記事内の画像をそのまま引っ張ってくるので、大きなサイズになってしまいますが、どこかでリサイズできるといいのですが……。