Own products

  • 新規事業のアイディア創造機

Tutorial

2013
04/15

【WordPress】アップロード画像の切り抜き基準点を「中心」から「左上」にする方法

この記事の読了時間:約352

  • このエントリーをはてなブックマークに追加

愛しのWordPress画像アップロードした際に、所定のサイズに切り抜き(リサイズじゃなくて)する時、あるじゃないですか。

でもアレって、画像の「天地中央」で切り抜くじゃないですか。

そーすっと例えば人物のバストアップ画像なんかの場合、顔の半分が見切れちゃうじゃないですか。

なんかヤじゃないですか。

今回のエントリーではその問題を解消すべく、画像切り抜きの基準点を「中心」から「左上」に変える方法をご紹介しようじゃないですか!

そんなコトよりこの文体、ちょーウザいじゃないですか!

アップロード画像の切り抜き基準点を「左上」にする方法

調べてみると、結構多いのが「コアファイルをイジる方法」なんですが、コレやっちゃうとWordPress本体のアップデート時に毎回書き直さなくちゃいけなくて、保守性に著しく欠けるという欠点が。

それはやだなーと別の方法を模索したところ、海外の記事でドンピシャの方法を発見!

詳細は上記サイトでご確認頂くとして、要は画像切り抜きを行うWordPress関数 image_resize_dimensions() を functions.php から上書きしちゃうって方法。

これならテーマファイルだけで完結するので、本体アップデートも影響なし!

というワケで下記にその記述を置いときますので、お使いの functions.php にコピペって下さいまし☆

function my_awesome_image_resize_dimensions( $payload, $orig_w, $orig_h, $dest_w, $dest_h, $crop ){
	if( false ) return $payload;

	if ( $crop ) {
		$aspect_ratio = $orig_w / $orig_h;
		$new_w = min($dest_w, $orig_w);
		$new_h = min($dest_h, $orig_h);

		if ( !$new_w ) $new_w = intval($new_h * $aspect_ratio);
		if ( !$new_h ) $new_h = intval($new_w / $aspect_ratio);

		$size_ratio = max($new_w / $orig_w, $new_h / $orig_h);
		$crop_w = round($new_w / $size_ratio);
		$crop_h = round($new_h / $size_ratio);

		$s_x = 0;
		$s_y = 0;
	} else {
		$crop_w = $orig_w;
		$crop_h = $orig_h;

		$s_x = 0;
		$s_y = 0;

		list( $new_w, $new_h ) = wp_constrain_dimensions( $orig_w, $orig_h, $dest_w, $dest_h );
	}

	if ( $new_w >= $orig_w && $new_h >= $orig_h ) return false;
	return array( 0, 0, (int) $s_x, (int) $s_y, (int) $new_w, (int) $new_h, (int) $crop_w, (int) $crop_h );
}
add_filter( 'image_resize_dimensions', 'my_awesome_image_resize_dimensions', 10, 6 );

これで切り抜きの基準点が「中心」から「左上」になって、かわいいモデルさんの顔半分が見切れるなんて惨事から開放されることでしょう!

次回も引き続きWordPress Tipsをご紹介の予定。

何故ならば!いままさに!WordPressを使った!新しいウェブサービスを!作っているのです!

先日の「現在作成中の某ウェブサービスで遊んでくれる方、募集します!」って記事の反応がすこぶる悪くてw だーれも手を上げてくれないので、ヤケになって公開翌日から着手してもう出来て、ドメインまで取りました。

あっちだって面白いサービスのはずなのに!くそー!!くそーーー!!!!

  • このエントリーをはてなブックマークに追加

コメント一覧

2 Responses to [【WordPress】アップロード画像の切り抜き基準点を「中心」から「左上」にする方法]

オカ より:

2013/04/15 11:52 PM

初めまして。
ずっとWordPressのアイキャッチのトリミング位置を変える方法無いかなと探していたのですが、この記事がまさに求めていたものでした。
この方法で無事トリミング位置を変更することが出来ました!
嬉しさのあまりコメントさせていただきました。本当にありがとうございます。

smkn より:

2013/04/16 6:25 PM

>オカ さん
これマジ厄介ですよねー!なんでデフォルトで選べないのか。。。
とにかく、お役に立てて何よりですっ☆

コメントを投稿する

お名前

ご連絡先メールアドレス※非公開

コメント

CAPTCHA


  • このブログのRSSを購読する
  • このブログをtwitterでつぶやく
  • このブログをFacebookで共有する
  • このブログをはてなブックマークで共有する

Favorite feeds

    Contact

    お名前※必須

    ご連絡先メールアドレス

    お問い合わせ内容※必須

    CAPTCHA

    captcha

    Blog parts

    Affiliate