投稿の一枚目の画像を取得する-wordpress

wordpressのお仕事

アイキャッチ画像を設定していない記事が大量に存在するwordpressに一括で設定できないか調べていて見つかりました

とても助かったので困っている方は参考に

参考にしたサイト
https://www.websuccess.jp/blog/archives/3159/

function.phpにこれを追加して

(function.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)){
$first_img = esc_url(get_template_directory_uri()) . "/images/common/noImage.png";
}
return $first_img;
}

出力したい箇所のループの中に

<?php echo catch_that_image(); ?>

こいつで画像のurlを呼び出し

あとはimgタグの中に入れると出てきます

下記はアイキャッチがあればそれを表示

なければ投稿の中の画像の一枚目を表示

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

関連記事

特集記事

TOP