WordPress でポストから画像取り出してサムネイル表示する方法、カスタムフィールドとかプラグインとかいろいろあるのは知ってるけど、なんかあんまりしっくり来るのがないなーって思ってて。で、新しくブログ始めたことだし、なんかいい方法ないのかなってあれこれ調べてたんだけど、結局のところ phpThumb() 使って普通にテンプレートに PHP 書くのが一番スッキリしててよさげ。カスタムフィールドでデータベースに余計なデータ入れたくないし、プラグインもなしでできるならなしでやるにこしたことはない(アップデートで不具合とかめんどくさいし)。というわけで以下手順。
phpThumb() のインストール・使い方
phpThumb() は簡単で高機能な PHP のサムネイル画像生成ライブラリ。ダウンロードページ から落として、ディレクトリ丸ごとサーバのドキュメントルート以下好きなとこに置く。demo, docs, fonts, images, index.php は要らないから消した方がいいかな。phpThumb.config.php.default は phpThumb.config.php に名前変えとく。あとは、
ってやるだけでサムネイルが出る。すげー簡単。w と h はサムネイルの幅と高さ。zc=1 でサムネイルの幅と高さの比率に合わせて元の画像の中心からクロップしてくれる。q=100 で JPG 圧縮のクオリティ指定。汚いサムネイルはいらないので 100。readme には 95=best とか書いてあるけど95とか気持ち悪いし 100 でいい。結果は同じ。他にもパラメータいじっていろいろできる(デモ 参照)。
WordPress のテンプレートで使う
あとはこれを使ってどうやってポストからサムネイル抜いてくるか。ここは正規表現で。WordPress ループの中で、
ポストの本文に画像が見つかれば $match[1] の中に画像の URL 全部が配列で入る。ポストの最初の画像が欲しいなら、
これでサムネイルが出る。画像ないポストの事もかんがえて、最終的に
こんな感じ。プラグインとかでゴチャゴチャやるよりシンプルでいいんじゃない?
One Trackback
[...] WordPress ポストのサムネイルは phpThumb() で – tanigami.jp [...]