テーマを変更中でお見苦しい点があると思います。ご迷惑をおかけいたします。

【WordPress】ブロックエディターの「画像サイズ」設定と実際の画像ファイルの関係を解説

WordPressのブロックエディターでは、挿入した画像サイズを簡単に変更できます。それが「画像サイズ」の設定です。「大」や「中」など特定のサイズを選択できるので、ページの画像サイズを統一することができて大変便利です。

しかし、実際に公開されるページの画像サイズはどうなるか考えたことはありますでしょうか?ページの画像サイズは表示速度に直結するので、気になるところです。

実はWordPressはアップロードした画像以外にも、内部的にいくつかのサイズの画像を生成して、サイズを変更したときにそれらの画像を使います。

この記事では、これらWordPressの画像設定に関することについて詳しく解説していきます。具体的には、次のような疑問を解消できるよう説明します。

次の疑問を解決
  • WordPressはどのような画像を生成し、どのように利用しているのか?
  • 自動的に生成する画像は、どこで設定できるのか?
  • 実際に公開される画像のサイズはいくつなのか?
  • 出力される<img>タグはどうなっているのか?
目次

ブロックエディターの「画像サイズ」の設定

ブロックエディターで画像サイズを設定する場所は、挿入した画像を選択し、右側の設定画面のブロックタブをクリックして表示される「画像サイズ」と「画像の寸法」のところです(下の画像参照)。

ブロックエディターの画像サイズの設定箇所

画像サイズ設定の詳細

画像サイズを設定する箇所をもう少し詳しくみてみましょう。挿入画像のサイズを設定する項目を拡大したのが次の画像です。

「画像サイズ」の設定の画面

ここの「画像サイズ」と「画像の寸法」では、次のような設定ができます。

  • 画像サイズ:
    「サムネイル」「中」「大」「フルサイズ」から選択する
  • 画像の寸法:
    • 「幅」と「高さ」をピクセル値で指定する
    • あるいは、「25%」「50%」「75%」「100%」の4つから選択する

アップロードした画像のサイズが小さいと「画像サイズ」には「大」などの選択肢が表示されません。

「画像サイズ」の「サムネイル」「中」「大」がどのようなサイズになるかはWordPressの設定によります。その設定は、WordPressの左側メニューから「設定」>「メディア設定」で表示される次の箇所で設定できます。

メディア設定の設定値

WordPressが自動的に生成する縮小画像

WordPressは、上記の設定より大きいサイズの画像がアップロードされると、それらの設定を超えないサイズに縮小した画像を自動的に生成します。例えば、幅と高さが「2048 x 1024」の画像をアップロードすると、サイズを縮小した次の3つの画像ファイルを生成します。

  • 1024 x 512(大サイズ用)
  • 300 x 150(中サイズ用)
  • 150 x 150(サムネイルのサイズ用)

サムネイル用の画像は「サムネイルを実寸法にトリミングする(通常は相対的な縮小によりサムネイルを作ります)」にチェックが入っていると、縦横比は維持されずトリミングして画像を生成します。

サムネイル以外は、設定値を超えない範囲で縦横比が維持されるサイズの画像が生成されます。

WordPressは、このほかにも縮小した画像をいくつか生成することがあります。それらについては、必要なところで説明します。

ブロックエディターの「画像サイズ」を「大」「中」「サムネイル」に変更すると、これら自動生成したファイルが使用されます。詳しくは、この後すぐに説明します。

公開される画像サイズと<img>タグ

プロックエディターで「画像サイズ」を変更したとき、実際に公開されるページの画像サイズと<img>タグがどのようになるか詳しくみてみましょう。

この記事ではアップロードする画像に次のものを使用して確認します。

アップロード画像のファイル名DSCF0339.jpg
アップロード画像のサイズ4000px x 3000px

なお、使用しているSWELLテーマでは、デフォルトで<img>タグにはさまざまな属性が設定されてしまいます。そのままだと分かりづらいので、SWELLテーマの機能でいくつかの属性が出力されないよう、次の設定を変更しています。

SWELLの設定変更箇所
  • 「SWELL設定」>「機能停止」タブの「画像のsrcsetを出力しない」
    →チェックしてsrcsetを出力しない
  • 「SWELL設定」>「機能停止」タブの「「投稿画像をクリックで拡大表示する機能」を停止する」
    →チェックして拡大表示機能停止
  • 「SWELL設定」>「高速化」タブの「画像等のLazyload」
    →「使用しない」にチェック

「画像サイズ」を変更する

それでは実際に「画像サイズ」を変更して、公開したページでどのような画像が使われるのか確認してきましょう。

フルサイズに設定する

「画像サイズ」で「フルサイズ」を選択したときから確認していましょう。次のように「画像サイズ」だけを変更して、その他の設定は明示的に変更しません。

「画像サイズ」を変更すると、それに合わせて「画像の寸法」の「幅」や「高さ」も変更されます。

画像サイズフルサイズ
画像の寸法2560
高さ1920
パーセント100%

ここで「画像の寸法」のサイズを見て「おや?」と思ったかもしれません。アップロードした画像のサイズは「4000px x 3000px」だったので「フルサイズも同じ寸法になるはずでは?」と思うかもしれませんが、これには理由があります。

実はWordPress 5.3以降では、アップロードした画像の幅または高さが 2560pxを超える場合、WordPressが2560pxを超えないサイズに縮小した画像ファイルも自動で生成します。生成したファイル名には「scaled」が付けられます。そして「フルサイズ」を選択したときには、このファイルが使用されるようになります。

<img>タグを見てみると、実際にWordPressが縮小したフルサイズ用の画像ファイルが使われていることがわかります。

<img decoding="async" width="2560" height="1920" src="http://192.168.56.101/wp-content/uploads/2023/07/DSCF0339-scaled.jpg" alt="" class="wp-image-7">

width属性とheight属性には「画像の寸法」と同じ値が設定されています。これは画像ファイルのサイズとも同じなので、ブラウザ上には実際の画像サイズの大きさで表示されます。

decoding=”async”とは

decoding属性は、画像デコードのヒントをユーザーエージェントに伝えます。通常、ブラウザがページを表示する際、画像のデコードはページの読み込みをブロックします。decoding属性に「async」を指定すると、ページの読み込みをブロックすることなく、バックグラウンドで非同期に画像をデコードできるため、ページ表示速度を速くすることができます。

大サイズに設定する

次に「画像サイズ」を「大」に変更します。すると各設定項目は次のようになります。

画像サイズ
画像の寸法1024
高さ768
パーセント100%

このときの<img>タグの出力は次の通りです。

<img decoding="async" width="1024" height="768" src="http://192.168.56.101/wp-content/uploads/2023/07/DSCF0339-1024x768.jpg" alt="" class="wp-image-7">

画像ファイルの「DSCF0339-1024×768.jpg」はWordPressが自動生成した大サイズ用のファイルです。このときもwidth属性、height属性の値と画像ファイルのサイズは一致しますので、ブラウザには画像の実際のサイズで表示されます。

中サイズを設定する

画像サイズを「中」に変更すると、各設定項目は次のようになります。

画像サイズ
画像の寸法300
高さ225
パーセント100%

このときの<img>タグの出力は次のとおりです。

<img decoding="async" width="1024" height="768" src="http://192.168.56.101/wp-content/uploads/2023/07/DSCF0339-1024x768.jpg" alt="" class="wp-image-7">

「DSCF0339-1024×768.jpg」はWordPressが自動生成した中サイズ用の画像ファイルで、width属性とheight属性の値も画像ファイルのサイズと同じになっています。

サムネイル

画像サイズを「サムネイル」に変更すると、各設定項目は次のようになります。

画像サイズサムネイル
画像の寸法150
高さ150
パーセント100%

この時の<img>タグの出力は次のとおりです。

<img decoding="async" width="150" height="150" src="http://192.168.56.101/wp-content/uploads/2023/07/DSCF0339-150x150.jpg" alt="" class="wp-image-7">

サムネイル用の画像ファイル(DSCF0339-150×150.jpg)が使用され、そのほかも予想通りの値になっています。

「画像サイズ」を変更した場合の効果

このように、「画像サイズ」を「大」「中」「サムネイル」に変更すると、WordPressが自動的に生成した画像ファイルが使われることがわかりました。

「フルサイズ」を選択したときだけ少し特殊です。通常はアップロードした画像がそのまま使われます。次の例は別の画像(752 x 538)でフルサイズを使った場合に出力される<img>タグです。

<img decoding="async" width="752" height="538" src="http://192.168.56.101/wp-content/uploads/2023/07/swell_stop_image_enlargement.png" alt="" class="wp-image-24">

アップロードした画像がそのまま使われ、width属性とheight属性も画像のサイズと同じ値となっています。

画像の幅または高さが 2560pxを超える場合には、前述のようにWordPressがフルサイズ用の画像ファイルを生成してそれを使用します。

「画像の寸法」のパーセントを変更する

次に「画像の寸法」をパーセントを変更して同じように確認してみましょう。100%については前述の例で確認できているので、それ以外のパーセントで確認します。ここで「画像サイズ」は「中」に固定します。

「75%」に変更する

画像サイズは「中」で、パーセント設定を「75%」に変更した場合から確認します。パーセントを変更すると「幅」と「高さ」の値もそれに合わせて自動的に変更されます。

このときの各項目の値は次の通りです。

画像サイズ
画像の寸法255
高さ169
パーセント75%

「画像の寸法」の「幅」と「高さ」が、中サイズ用の画像サイズ(300 x 225)の75%の値になっていることがわかります。

このときの<img>タグの出力は次のとおりです。

<img decoding="async" src="http://192.168.56.101/wp-content/uploads/2023/07/DSCF0339-300x225.jpg" alt="" class="wp-image-7" width="225" height="169">

画像ファイルは中サイズ用の「DSCF0339-300×225.jpg」が指定されています。width属性とheight属性には「画像の寸法」の値が指定されています。

「50%」に変更する

次にパーセントを「50%」に変更します。

画像サイズ
画像の寸法150
高さ113
パーセント50%

この時の<img>タグの出力は次のとおりです。

<img decoding="async" src="http://192.168.56.101/wp-content/uploads/2023/07/DSCF0339-300x225.jpg" alt="" class="wp-image-7" width="150" height="113">

画像ファイルは中サイズ用が指定され、width属性とheight属性も中サイズ用の画像の50%のサイズになっています。

「25%」に変更する

パーセント設定を「25%」に変更した場合の各項目の値は次のとおりです。

画像サイズ
画像の寸法75
高さ56
パーセント25%

このときの<img>タグの出力は次のとおりです。

<img decoding="async" src="http://192.168.56.101/wp-content/uploads/2023/07/DSCF0339-300x225.jpg" alt="" class="wp-image-7" width="75" height="56">

同じく中サイズ用のファイルが使われ、width属性とheight属性の値も元のサイズの25%です。

「画像の寸法」のパーセントを変更した場合の効果

このようにパーセントを変更しても使用する画像ファイルは変わらず、width属性とheight属性の値だけが変わります。

これはブラウザ上で画像は縮小して表示されますが、ページは軽くならないことを意味ます。

「画像の寸法」の「幅」と「高さ」をピクセル値で指定する

最後に「画像の寸法」の「幅」と「高さ」の値を変更します。引き続き画像サイズは「中」を使い、「画像の寸法」の値だけを変更します。

「幅」だけを変更する

「画像の寸法」の「幅」を「200」に変更に変更します。このとき「高さ」の値は変わりません。そのときの各項目の表示は次の通りです。

画像サイズ
画像の寸法200
高さ225
パーセント100%

このときの<img>タグの出力は次のとおりです。

<img decoding="async" src="http://192.168.56.101/wp-content/uploads/2023/07/DSCF0339-300x225.jpg" alt="" class="wp-image-7" width="200">

予想通り画像ファイルには、中サイズ用の画像ファイルが使われます。変更しなかった「高さ」に対応するheight属性は出力されず、変更した「幅」に対応するwidth属性だけが出力されています。この場合、通常は縦横比は維持されるので、高さは幅に合わせて調整されてブラウザに表示されます。

どうやら変更した「幅」と「高さ」に対応する属性だけが出力されるようです。

「高さ」だけを変更する

次に「高さ」だけを150に変更します。

画像サイズ
画像の寸法300
高さ150
パーセント100%

このときの<img>タグの出力は次のとおりです。

<img decoding="async" src="http://192.168.56.101/wp-content/uploads/2023/07/DSCF0339-300x225.jpg" alt="" class="wp-image-7" height="150">

「幅」のみを変更した場合と同様に、変更した「高さ」に対応するheight属性だけが出力されます。この場合も高さに合わせて幅も調整されるので、ブラウザ上の表示で縦横比は維持されます。

「幅」と「高さ」の両方を変更する

最後に「幅」と「高さ」の両方を変更します。変更する値は次の通りです。

画像サイズ
画像の寸法200
高さ100
パーセント100%

このときの<img>タグの出力は次のとおりです。

<img decoding="async" src="http://192.168.56.101/wp-content/uploads/2023/07/DSCF0339-300x225.jpg" alt="" class="wp-image-7" width="200" height="100">

予想通り、対応するwidth属性とheight属性の両方が出力されました。もちろんこの場合はブラウザ上での縦横比は維持されていません。

テーマにSWELLを使用した場合、height属性が機能しませんでした。どうやらWordPressとSWELLの両方のCSSで「height: auto」が指定されているのが原因のようです。他のテーマでは動作しましたので、テーマ側で機能するようにCSSのheight属性を上書きしているのかもしれません。

「画像の寸法」の「幅」と「高さ」を変更した場合の効果

「幅」と「高さ」を指定することで、width属性とheight属性の値を自由に制御できることがわかりました。

ここでも使用する画像ファイルは変わりませんので、ページの軽さ(重さ)が変わることはありません。

まとめ

ページで使用する画像ファイル(src属性)を変更するには「画像サイズ」の設定を変更すれば良いことがわかりました。そして「画像の寸法」の設定はブラウザ上での表示サイズ(width属性とheight属性)を変更する設定です。

したがって、ページを軽くしようと「画像の寸法」を変更するのは間違いです。きちんと理解して正しく使いましょう。

付録:SWELLが出力する<img>タグの属性

記事中では出力される<img>タグがわかりやすいように、SWELLでいくつかの機能を停止しましたが、機能を停止しない場合の<img>タグも参考に見てみましょう。

<img decoding="async" width="1024" height="768" src="http://192.168.56.101/wp-content/uploads/2023/07/DSCF0339-1024x768.jpg" data-src="http://192.168.56.101/wp-content/uploads/2023/07/DSCF0339-1024x768.jpg" alt="" class="wp-image-7 luminous lazyloaded" data-srcset="http://192.168.56.101/wp-content/uploads/2023/07/DSCF0339-1024x768.jpg 1024w, http://192.168.56.101/wp-content/uploads/2023/07/DSCF0339-300x225.jpg 300w, http://192.168.56.101/wp-content/uploads/2023/07/DSCF0339-768x576.jpg 768w, http://192.168.56.101/wp-content/uploads/2023/07/DSCF0339-1536x1152.jpg 1536w, http://192.168.56.101/wp-content/uploads/2023/07/DSCF0339-2048x1536.jpg 2048w" sizes="(max-width: 1024px) 100vw, 1024px" style="" srcset="http://192.168.56.101/wp-content/uploads/2023/07/DSCF0339-1024x768.jpg 1024w, http://192.168.56.101/wp-content/uploads/2023/07/DSCF0339-300x225.jpg 300w, http://192.168.56.101/wp-content/uploads/2023/07/DSCF0339-768x576.jpg 768w, http://192.168.56.101/wp-content/uploads/2023/07/DSCF0339-1536x1152.jpg 1536w, http://192.168.56.101/wp-content/uploads/2023/07/DSCF0339-2048x1536.jpg 2048w" data-luminous="http://192.168.56.101/wp-content/uploads/2023/07/DSCF0339.jpg">

非常にたくさんの属性が追加されていることがわかります。これらの属性のうち、data-*属性(data-srcやdata-srcsetなど)は、HTMLでは意味が定義されていなく、追加の情報を提供するのために用いられます。一般にJavaScriptなどからその値は参照されます。

これらの属性の意味を次に示します。

属性意味
decoding画像デコードのヒントをユーザーエージェントに伝える。asyncは画像のデコードを他のコンテンツとは非同期に行う。
width画像の横幅
height画像の高さ
src画像のURL
data-src特定の意味を定義されていないdata-*属性の一種。JavaScriptから値を読み込まれ、src属性の値を操作することで画像の表示遅延を実現していると思われる。
alt代替テキスト
classクラス名
data-srcsetdata-src同様に画像の表示遅延のために使われると思われる。
sizesどのようなサイズで表示したいか指定する。
styleスタイルシートの指定
srcsetsrc属性は1つのリソースを指定するのに対し、この属性はリソースのセットを指定する。レスポンシブ対応などで、複数のリソースから最適なリソースを選択して表示することが可能になる。
data-luminous画像をクリックしたときに、ポップアップして画像を拡大表示するために使われる属性だと思う。

追加された属性は、画像の遅延読み込みと表示画像の最適化に関わるものがほとんどのようです。srcset属性では、いくつかの状況で最適な画像を提供する必要があるため、WordPressは前述した画像以外にもいくつかの画像を生成しています。

今回使用した画像では、アップロードした画像(DSCF0339.jpg)以外に合計7つの画像ファイルがWordPressによって生成されていました。

$ ls -1 wp-content/uploads/2023/07/
DSCF0339-1024x768.jpg
DSCF0339-150x150.jpg
DSCF0339-1536x1152.jpg
DSCF0339-2048x1536.jpg
DSCF0339-300x225.jpg
DSCF0339-768x576.jpg
DSCF0339-scaled.jpg
DSCF0339.jpg

結構たくさんの画像を生成してるんですね。

では、最後までお読みいただきありがとうございました。

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

・PM、SE、SIなどを20年以上経験
・ネットワークスペシャリスト、セキュリティスペシャリストなど複数のIT国家資格を保有

目次