WordPressでアイキャッチ画像の切り抜きの基準を変える

posted on 30 Sep, 2012 - 00:50:21 -

WordPressに標準で搭載されているアイキャッチ(サムネイル)機能なんですが、切り抜きを使うと画像の真ん中を基準に画像を切り抜いてくれます。その切り抜きの基準を変えてやろうという話。

注:WordPressのコアコードをいじります。試して動かなくなったヽ(`Д´)ノウワァァァン!!となっても自己責任でお願いします。

当サイトのWorksのようにサムネイルは固定サイズ(当サイトの場合320px×180px)、記事ではフルサイズの画像を表示するといった形をとる場合、真ん中を基準にトリミングされては困る場合があります。


中央で切り取ったが故の悲劇

というわけで、何とかならんもんかと調べた結果コアコードをいじればできそうなので紹介。

画像の切り抜き設定はwp-includesフォルダの中にあるmedia.phpのimage_resize_dimensions()でしています。その中の下記コードが切り抜きの基準を決めている部分です。

$s_x = floor( ($orig_w - $crop_w) / 2 );
$s_y = floor( ($orig_h - $crop_h) / 2 );

s_xが横の基準、s_yが縦の基準です。それぞれs_x、s_y以降の部分を変えれば基準を変えることができます。具体的には

左を基準にする

$s_x = 0;

右を基準にする

$s_x = floor( ($orig_w - $crop_w) );

上を基準にする

$s_y = 0;

下を基準にする

$s_y = floor( ($orig_h - $crop_h) );

です。これらを組み合わせて

$s_x = 0;
$s_y =0;

とすることで左上に基準を持っていったりできます。

というわけで今回は便利なようで実はそうでもない紹介でした。ぶっちゃけ好きな箇所を切り抜けるわけでもないので、あまり活躍することはないかも。とは言え検索してもなかなか出てくる部類のハナシでもない。
イラストギャラリーとかをカスタム投稿タイプで作るときに使えるかなーとも思ったけれど、切れてほしくない箇所が必ず基準に近い位置にあるとは限らないし。


©2012 Re:Q Reserved