記事内にある画像で一番上にある画像を取得し、記事更新、もしくは保存時にそれをアイキャッチ画像に自動的に登録する方法はありますか?
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 ; ?>
ちなみにプラグインにも
という自動でサムネイルを設定してくれるプラグインがあります。
もしよかったらこちらも参考までに