【PHP】WordPress内でメディアに登録していない画像をリサイズ・切り抜きする方法
WordPressでサムネイルを出力する際、画像のサイズを自由に変更する方法として、
function.php内でadd_image_size()という関数を使って事前に変更するサイズを定義したり、
サムネイルを出力するときに使うthe_post_thumbnail()という関数等のサイズ指定で、
1 | <? the_post_thumbnail( array(40,40) ); ?> |
という風に、配列で直接大きさを指定する方法があります。
しかしこれらは基本的にWordPressのメディアで登録した画像ではない場合、出力することができないため、
メディアに登録していない画像をサムネイルとして出力したい場合などには、これらの方法は使うことができません。
先ほどWordPressで制作していたサイトで、旧サイトから新サイトへ記事を引っ越しさせなければならなかったのですが、
記事がとても多くファイルのサイズが大きすぎたためか、
メディアの内容をエクスポート→インポートによって一緒に移すことができなかったため、
FTPでメディア内の画像ファイルを直接移動する方法を取らざるを得ず、
旧サイトの記事内の画像がメディアに登録されていないという状態になってしまいました。
この状態では、先ほどご紹介した方法でサムネイルとして表示することができないため、
別の方法を探したところ、見つけることができましたので、ご紹介いたします。
↓コチラのサイトで公開されているPHPのクラスを利用した方法です。
方法
1.上のご紹介しているサイトから、「resizeimg.class.php」をダウンロードして、resizeimg.class.phpをFTPからテーマの入っているフォルダ(例:wp/wp-content/themes/[選んでいるテーマのフォルダ]/)にアップロードします。
2.function.phpに以下のコードを記入します。
1 2 | include_once('[ルートパス]/wp/wp-content/themes/[選んでいるテーマのフォルダ]'.'/resizeimg.class.php'); $RI = new resize_image(); |
[ルートパス]と[選んでいるテーマのフォルダ] のところは、環境に合わせて変更してください。
3.出力する箇所に、以下のコードを記入します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <img src="<?php $src = '[出力したい画像のURL]'; $width = 40; //サムネイルの横幅 $height = 40; //サムネイルの高さ $type = '[サムネイルの切り抜き方法]'; /*サムネイルの切り抜き方法 fit : 指定サイズにフィットするようにリサイズ&トリミング ※指定サイズより小さな画像は拡大してトリミング resize : 指定サイズ内に収まるように縮小 ※指定サイズより小さな画像はそのまま表示されます wfit : 横幅だけを指定サイズに合わせます hfit : 縦サイズだけを指定サイズに合わせます 指定の例 $type = 'fit'; */ $new_image_path = $RI->disp_resize_img_path( $src, $width, $height, $type ); echo $new_image_path; ?>" alt="image"> |
これで完了です。
大きさだけでなく、切り抜きの方法も選ぶことができ、指定方法もわかりやすいので、
とても便利です。
Author Profile
NINOMIYA
Webデザイナー兼コーダー出身のフロントエンド開発者です。 UXデザインやチーム開発の効率化など、勉強中です。
SHARE