WordPressでアップロードした画像を上端から表示する方法

WordPressサイトのアーカイブページで一覧で表示される投稿のアイキャッチ画像のサムネイル。
上下の中央、左右の中央でトリミングされてしまい、大きな画像の場合ですと意図しないイメージになってしまうことがあります。

上端から画像を表示したいのに……

画像をトリミングして作成しなおしたりするのは大変ですよね。😅

サムネイル画像を上端から表示したい時に使える方法です。

テーマのfunction.phpに下記のコードを追加して保存するだけです。
function.phpの変更はデータをバックアップしてから行うのがおすすめです。📂🔧

function custom_img_resize( $pld, $ow, $oh, $dw, $dh, $crp ){
	if( false ) return $pld;

	if ( $crp ) {
		$ar = $ow / $oh;
		$nw = min($dw, $ow);
		$nh = min($dh, $oh);

		if ( !$nw ) $nw = intval($nh * $ar);
		if ( !$nh ) $nh = intval($nw / $ar);

		$sr = max($nw / $ow, $nh / $oh);
		$cw = round($nw / $sr);
		$ch = round($nh / $sr);

		$x = ($ow - $cw) / 2;
		$y = 0;
	} else {
		$cw = $ow;
		$ch = $oh;

		$x = ($ow - $cw) / 2;
		$y = 0;

		list( $nw, $nh ) = wp_constrain_dimensions( $ow, $oh, $dw, $dh );
	}

	if ( $nw >= $ow && $nh >= $oh ) return false;
	return array( 0, 0, (int) $x, (int) $y, (int) $nw, (int) $nh, (int) $cw, (int) $ch );
}
add_filter( 'image_resize_dimensions', 'custom_img_resize', 10, 6 );

これでサムネイル画像が上下の上端を基準点としてトリミングされて表示されます。🎉

タイトルとURLをコピーしました