記事内の最初の画像を取得したい
クライアント様の一人が、サイトをカスタマイズしているとき、誤って全ての記事のアイキャッチ画像を削除してしまいました。ループ部分にアイキャッチ画像を表示させていたのですが、それらが全て表示されなくなった状態です。
「元に戻して!」と相談されたのですが、データ自体が消えていたので元には戻せません。
「戻せません」と回答しようとしたのですが、サイトを確認してみると、全ての記事でアイキャッチに登録していた画像と同じ画像が、本文の頭に設置されています。
よくよく聞くと、元々HTMLサイトだったのを、WordPressで作り直したサイトだったようです。
その時、本文の頭にあった画像をアイキャッチ画像として登録したとのこと。
この状態であれば、アイキャッチ画像を元に戻すことはできませんが、【記事内の最初の画像を取得してループ部分に表示させる】は可能です。
ループ部分に画像が表示されれば良いとのことでしたので、この方法でループ部分に画像が表示させるように修正をさせていただきました。
【記事内の最初の画像を取得して任意の場所(上記の場合はループ)に表示させる】
やり方をまとめておきましたので、参考になれば参考にしてください。
記事内の最初の画像を取得して表示させる手順
記事内の最初の画像を取得して表示させる手順をご紹介していきます。
今回の方法で取得できるのは、【記事内に設置されている最初の画像】です。
2枚目、3枚目の画像を取得することはできません。
手順1:functions.phpにコードを追記する
functions.phpに以下のコードを追記してください。
function catch_that_image() {
global $post, $posts;
$first_img = '';
ob_start();
ob_end_clean();
$output = preg_match_all("/]+src=[\"'](s?https?:\/\/[\-_\.!~\*'()a-z0-9;\/\?:@&=\+\$,%#]+\.(jpg|jpeg|png|gif))[\"'][^>]+>/i", $post->post_content, $matches);
$first_img = $matches [1] [0];if(empty($first_img)){ //Defines a default image
$first_img = "/images/default.jpg";
}
return $first_img;
}
WordPress記事内の最初の画像を表示、画像表示問題も解決。より抜粋。
上記の【/images/default.jpg】部分は、記事内に画像が一つも無い場合に表示させる代替画像のパスに変更してください。
上記のコードでは相対パスになっていますが、絶対パスで記述しても構いません。
手順2:記事内の最初の画像を表示させたい箇所にコードを記述する
取得した画像を表示させたい場所に以下のコードを記述します。
<img src="<?php echo catch_that_image(); ?>" />
WordPress記事内の最初の画像を表示、画像表示問題も解決。より抜粋。
このコードを記述した箇所に、記事内の最初の画像が表示されます。
例えば、記事一覧でアイキャッチがあればアイキャッチを表示、アイキャッチが無ければ最初の画像を表示、この様な場合は以下の様なコードを記述してやりましょう。
<?php if (has_post_thumbnail()) : ?>
<?php the_post_thumbnail('thumbnail'); ?>
<?php else : ?>
<img src="<?php echo catch_that_image(); ?>" />
<?php endif ; ?>
コードの記述方法は、ケースバイケースで調整してください。
手順3:取得した画像のサイズを調整する
画像は元サイズで表示されます。
画像サイズを調整する場合は、CSSで調整する必要があります。
画像が親要素の横幅に収まるようにしてやりましょう。
例えば、以下の様に設定してやります。
img{
max-width: 100%;
height: auto;
width /***/:auto;
}
これで、親要素の横幅に画像が収まるようになります。
まとめ
記事内の最初の画像を取得する方法をご紹介いたしました。
functions.phpにコードをコピペ、画像を表示したい場所にもコードをコピペする。
これだけで、記事内の最初の画像を取得して表示することができます。
記事一覧などで画像を表示させたいけど、アイキャッチ画像を登録していない。
記事数が多すぎて今からアイキャッチ画像を登録するのがめんどう。
ほとんどの記事に特有の画像を張っている。
上記の様な場合、今回の内容が役立つかと思います。
コメントを残す