What's wp ?

What's wp ?

eycatch

メディア

アップロードすると縮小された画像ファイルが作成される

ボー
ボー
画像をアップロードしたときどのくらいのファイルが作成されるですにゃ。
ワープ
ワープ
メディア設定をデフォルトのままで、横長(landscape)の幅4000px、高さ3000pxのl-jpgとl.png、縦長(portrait)の幅3000px、高さ4000pxのp-jpg、p-pngをアップロードすると下の表のようなファイル名になるにゃ。
名前サイズl.jpg
(4000x3000)
l.png
(4000x3000)
p.jpg
(3000x4000)
p.png
(3000x4000)
full元の幅x高さl.jpgl.pngp.jpgp.png
thumbnail150x150l-150x150.jpgl-150x150.pngp-150x150.jpgp-150x150.png
medium300x300l-300x225.jpgl-300x225.pngp-225x300.jpgp-225x300.png
large1024x1024l-1024x768.jpgl-1024x768.pngp-768x1024.jpgp-768x1024.png
medium_large768x0l-768x576.jpgl-768x576.png
1536x15361536x1536l-1536x1152.jpgl-1536x1152.pngp-1152x1536.jpgp-1152x1536.png
2048x20482048x2048l-2048x1536.jpgl-2048x1536.pngp-1536x2048.jpgp-1536x2048.png
2560x2560l-scaled.jpg
(2560x1920)
p-scaled.jpg
(1920x2560)
ワープ
ワープ
元の画像がアップロードされると同時に様々なサイズに縮小された画像ファイルが作成されるにゃ。その際ファイル名に"-幅x高さ"が追加されるにゃ。png以外で2560px以上のサイズがあるとファイル名に"-scaled"が付いたものも作成されるにゃ。多くのものは縦横比が維持されるけど、トリミング(crop)設定になっているとトリミングされるにゃ。thumbnailはメディア設定にトリミングのチェックボックスがあるにゃ。medium_largeは幅768で高さの指定がないので縦長でも横長でも幅が768pxの画像ファイルができるにゃ。

サイズの削除

ボー
ボー
作成されるファイルはもっと少なくできないですにゃ?

メディア設定

ワープ
ワープ
メディア設定で指定する幅と高さを0にするとサムネイルのサイズ、中サイズ、大サイズを作成しないようになるにゃ。ただ、WordPressコアで指定されているmedium_large等のサイズのファイルは作成されるにゃ。幅と高さのどちらかを0にすると幅だけや高さだけの指定ができるにゃ。

PHPで制御

ワープ
ワープ
以下のコードで元画像だけアップロードすることができるにゃ。

画像のアップロード時に縮小画像ファイルを作成しない

add_filter( 'intermediate_image_sizes_advanced', 'my_intermediate_image_sizes_advanced' );
function my_intermediate_image_sizes_advanced( $new_sizes ) {
	unset( $new_sizes['thumbnail'] );
	unset( $new_sizes['medium'] );
	unset( $new_sizes['large'] );
	unset( $new_sizes['medium_large'] );
	unset( $new_sizes['1536x1536'] );
	unset( $new_sizes['2048x2048'] );
	return $new_sizes;
}
// 2560x2560 '-scaled'
add_filter( 'big_image_size_threshold', '__return_false' );

サイズの追加

ボー
ボー
作成されるサイズは追加もできるのですにゃ?
ワープ
ワープ
add_image_size()を使えば追加もできるにゃ。トリミングするかどうかも指定できるにゃ。

サイズの追加

add_image_size('my-image-size', 400, 400, false);
ココア
ココア
各サイズのファイルが生成されるのはアップロードするときなので、サイズを追加しても表示するときのサイズのファイルが存在しなくて表示できないことがあるけどにゃ。

アイキャッチ画像

ボー
ボー
アイキャッチ用のサイズも指定できるですにゃ?
ワープ
ワープ
アイキャッチ画像はまずadd_theme_support()でアイキャッチ画像を使えるようにして、set_post_thumbnail_size()でサイズを指定できるにゃ。

アイキャッチ画像のサイズ指定

add_theme_support( 'post-thumbnails' );
set_post_thumbnail_size( 500, 500 );

サイズ名'post-thumbnail'

ワープ
ワープ
set_post_thumbnail_size()は'post-thumbnail'という名前でadd_image_size()しているだけなのでアイキャッチ画像でない画像ファイルのアップロードでもそのサイズの画像ファイルが作成されるにゃ。

WordPressのコア wp-inclues/media.php

function set_post_thumbnail_size( $width = 0, $height = 0, $crop = false ) {
	add_image_size( 'post-thumbnail', $width, $height, $crop );
}
ワープ
ワープ
テンプレートタグthe_post_thumbnail()やget_the_post_thumbnail()でサイズを指定しなかったときにこの'post-thumbnail'が使われるにゃ。

WordPressのコア wp-inclues/post-thumbnail-template.php

function the_post_thumbnail( $size = 'post-thumbnail', $attr = '' ) {
	echo get_the_post_thumbnail( null, $size, $attr );
}

参考

コメントはこちらから