single.phpの1番上にある画像を取得して、アイキャッチにする方法は?

on 2018年10月12日をアップデートしました。 カスタマイズ
1 on 2018年10月9日

記事内にある画像で一番上にある画像を取得し、記事更新、もしくは保存時にそれをアイキャッチ画像に自動的に登録する方法はありますか?

 
  • Liked by
書き込み
0 on 2018年10月12日

function.phpに以下のコードを追加することでできるようになります。

 

 

function.php

function auto_add_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)){
// 記事内で画像がなかったときのためのデフォルト画像を指定
$first_img = "/images/no-image.jpg";
}
return $first_img;
}

 

 

 

表示させたい場所に次のコードを追加すれば記事内の最初の画像が表示されます。もしアイキャッチ画像が既に設定されている記事に関してはアイキャッチ画像が表示されるようになります。

 

<?php if (has_post_thumbnail()) : ?>
<?php the_post_thumbnail('thumbnail'); ?>
<?php else : ?>
<img src="<?php echo auto_add_image(); ?>" alt="<?php the_title(); ?>" />
<?php endif ; ?>

 

ちなみにプラグインにも

 

Auto Post Thumbnail

 

という自動でサムネイルを設定してくれるプラグインがあります。

もしよかったらこちらも参考までに

  • Liked by
書き込み
キャンセル
書き込みを読み込む