Wonderful! WordPress

画像をアップした時に自動生成されるサムネイルたち

ふと、気が付くとサーバーのアップロードディレクトリには-768 なるサムネイル画像がたくさん並んでいる、あれっ、これはいったいっ!
画像をアップロードした時に、自動生成されるサムネイルはメディアの設定において、小:150x150、中:500x500、大:0x0 に設定してある。しかし768というサイズが当然のこと元画像と同じ数だけ存在している。
まぁ、気が付かなかった方もなんですが、WordPress がレスポンシブイメージ( srcset )を実装したときから、新たに追加されたサムネイルサイズということのようです。
これによって、狭いスクリーンの端末において、適切なサイズの画像を読み込むことが出来るようになって、パフォーマンスにおいて有効になるということだと思うのです。 ちなみに、ファイルサイズをくらべてみたりすると一例として、500px:58kb、768px:118kb、元画像の1,280px:193kb、となっています。
ただ、自サイトの場合、今のところコンテンツの幅は固定であるし、それにより使用する画像サイズも500pxで固定なので768pxというのは不必要なんじゃないかな~?
と、いうことでこの768サイズのサムネイルを自動的に作らせないようにするにはどうしたらいいものかと!
改めて設定のメディアの項目を見てみても、実はこのミディアムラージ(medium_large)サイズの設定というものはないんですね、はてさて、いったいどうしたものか?

ネットをたどっていると、WordPress.org には、この件に関しての以下の記述のあるこのページがありました。

A new default image size
A new default intermediate size, medium_large, has been added to better take advantage of responsive image support. The new size is 768px wide by default, with no height limit, and can be used like any other size available in WordPress. As it is a standard size, it will only be generated when new images are uploaded or sizes are regenerated with third party plugins.
The medium_large size is not included in the UI when selecting an image to insert in posts, nor are we including UI to change the image size from the media settings page. However, developers can modify the width of this new size using the update_option() function, similar to any other default image size.

知りたい部分は後半の部分です。
「ミディアムラージサイズは、画像を投稿に挿入する時のユーザーインターフェースにはないし、メディア設定ページからサイズを変更するためのユーザーインターフェースの変更もしませんよ。だけど、開発者の方々はこの新しいサイズのwidthをモディファイすることは、”update_option()”を使えば、他の標準の画像サイズと同じくして出来ますよ。」
と、いう感じでいいかな~。

変更したければ、オプション設定値を変えなさいということです。
wp_options テーブルを探して見ると、medium_large_size_w という名のオプションに768 という値があることを見つける事が出来ます。
すなわち、update_option() を使って、 wp_options テーブルに保存してある、medium_large_size_w の値を0にすれば、そのサイズのサムネイルは作成されなくなるということだと。直接データベースの値を変更した方が、早いですけどね、それはそれで・・・。
と、いうことなのでfunctions.php に以下のように一行を書いて、一度だけサイトを表示させ、またすぐに消してしまいます。本体のWordPress がアップデートされても戻ってしまわないと思うのですけれど・・・、大丈夫です!戻りません。

<?php
	update_option( 'medium_large_size_w', 0 );
?>

ところで、既にサーバーにある768px のサムネイルたちはこやしとなっているだけなので消してしまいたくなるのが普通なのですが、サイトのhtml をのぞき見てみると、imgタグのscrset には相変わらず768px サイズの設定があります。これは画像の情報としてwp_postmeta テーブルに、たぶん、画像が投稿に挿入されたときなのか、サムネイルが作成された時にデータベースに書き込まれたものによるものだと思われます。
当然のことながら、新しい記事を投稿して画像を挿入してみると、768pxのサムネイルも作成されないし、その情報も書き込まれません。
しかし、過去に768px のサムネイルが作成された画像においては、html に書き出されてしまうので、これは何かしらの不具合が生じてしまうかもしれないですね。
とりあえず、scrset が不必要であれば、それの書き出しは無効化しておいた方が良いのではないかと。と、いうことで以下のフィルターフックを追加しています。これでscrset は書き出されなくなるということです。

<?php
	add_filter( 'wp_calculate_image_srcset', '__return_false' );
?>

Leave a Reply!

JavaScript is necessary to send a comment.
You can edit and delete your comment if you input a edit key.
Edit key is necessary for attesting you when you edit and delete it.
The tag of HTML cannot be used in comment.
When you comment for the first time, it is displayed after the approval of the administrator.
Because I cannot speak English so much, it takes time to answer.
Required fields are marked *.

※Please enter more than 5 characters only alphabets.
※Edit or delete are possible for 2000 days after approval.

*

♠Simplistic Comment User Editable v4.0

♠When visitors leave comments on the site this site collect the data shown in the comments form, and also the visitor’s IP address and browser user agent string to help spam detection.
♠This site does not use cookie when visitors leave comments and commenter edit comment.
♠This site uses Akismet to reduce spam. Learn how your comment data is processed.

Comments feed

Trackback URL : https://strix.main.jp/wp-trackback.php?p=70093

Sanbanse Funabashi
2011.01.01 sunrise

Top

スクロールさせるか画像をクリックすると元に戻ります。