Home > Archives > 2007-10

2007-10

WordPressが生成するサムネイルのサイズを変更する

追記:プラグイン化したのものがありました。わーどぷれすっ! » サムネイルのサイズの変更

画像を投稿したときにWordPressが生成するサムネイルのサイズは、phpファイルを直接変更することで変更可能ということらしい。

WordPress 2.3では/wp-admin/includes/image.phpの以下の部分の128がサムネイルのデフォルトの長辺の長さ。128を書き換えるとサムネイルの最大サイズが変わる。

$max_side = apply_filters( 'wp_thumbnail_max_side_length', 128, $attachment_id, $file );

image.phpを見ていたら、以下の部分で縦横の長辺から、サムネイルのサイズを計算していたので、


// figure out the longest side

if ( $image_attr[0] > $image_attr[1] ) {
	$image_width = $image_attr[0];
	$image_height = $image_attr[1];
	$image_new_width = $max_side;

	$image_ratio = $image_width / $image_new_width;
	$image_new_height = $image_height / $image_ratio;
	//width is > height
} else {
	$image_width = $image_attr[0];
	$image_height = $image_attr[1];
	$image_new_height = $max_side;

	$image_ratio = $image_height / $image_new_height;
	$image_new_width = $image_width / $image_ratio;
	//height > width
}

ここをifブロックのどちらかの内容だけに書き換えることで、サムネイルを横幅サイズ固定もしくは縦幅サイズ固定で生成できる。
上のコードを以下の様に書き換えると、横幅固定でサムネイルを生成する。


// figure out the longest side

// 横幅固定のサムネイル作成に変更
// if ( $image_attr[0] > $image_attr[1] ) {
	$image_width = $image_attr[0];
	$image_height = $image_attr[1];
	$image_new_width = $max_side;

	$image_ratio = $image_width / $image_new_width;
	$image_new_height = $image_height / $image_ratio;
	//width is > height
// } else {
// 	$image_width = $image_attr[0];
// 	$image_height = $image_attr[1];
// 	$image_new_height = $max_side;
//
// 	$image_ratio = $image_height / $image_new_height;
// 	$image_new_width = $image_width / $image_ratio;
// 	//height > width
// }

Home > Archives > 2007-10

Search
Feeds
Meta

Return to page top