WordPressのアイキャッチ画像が無い場合、投稿記事の一番最初の画像を表示する。

TITLE
Tweet about this on TwitterShare on Google+0Buffer this pageShare on Facebook0

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)部分は空白でもいいですし、アイキャッチの大きさの設定部分になっています。

記事内の画像をそのまま引っ張ってくるので、大きなサイズになってしまいますが、どこかでリサイズできるといいのですが……。

コメントを残す

メールアドレスが公開されることはありません。