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

TITLE

WordPressで記事を書いたり、制作事例等を投稿していると、うっかりアイキャッチ – サムネイル画像を設定することを忘れてしまうこともあります。
そんな時は下記のコードを利用してみましょう。

WordPressのアイキャッチ画像が無い場合、投稿記事の一番最初の画像を表示する。しかし、投稿記事に画像が無いばあいは、任意の画像を表示させるコードです。

まずfunctions.phpに下記を追加します。
これはアイキャッチ画像が設定されていない場合に、投稿記事に挿入された一番最初の画像を替りに表示するコードですね。色々と紹介されているコードです。

[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ファイルに下記を記入します。

[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; ?>
[/php]

4行目の
[php]
<?php the_post_thumbnail(large); ?>
[/php]
(large)部分は空白でもいいですし、アイキャッチの大きさの設定部分になっています。

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

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です