質問: ### 前提・実現したいこと 「前提」 ・当方、WordPress初心者でプログラミングの知識も皆無です(本来こちらを利用する資格はないと思われるのですがスミマセン) ・WordPressの有料テーマを使用して、書き始めるもアップロードした画像の画質低下が気になり、有料テーマ制作会社に問い合わせたところ、2つのコードを教えられました。それらのコードをFTPソフトを使い、子テーマでアップロードしたところ、メディアライブラリが開かなくなりました(ずっと丸がぐるぐる回っている)。 ・そもそも、アイキャッチ画像の画質が悪いので画像サイズの問題ではない(アップロードしている画像サイズも決して小さいものではない) ・コードをコピペする際、過不足や大文字小文字のミス、余計な改行はしておりません。 ・他サイトで教えていただいたcallbackのコードでも同様の状態でメディアライブラリが開かなくなりました。また、「jpeg_quality」をいじっているところはないか探してみるように言われ、function.php内を検索するも該当箇所が見当たりません(「jpeg」のみで検索をかけても見当たりません)。 「実現したいところ」 ・WordPressでの画質向上(メディアライブラリもきちんと開くように) 「質問内容」 どうすればWordPressで画質が向上するのか。 以下の3コードでも無理なら諦めねばならないのか。 テーマの再インストールや導入しているプラグインの停止など、コード以外に原因を見出す必要はあるのか。 ### 発生している問題・エラーメッセージ ``` メディアライブラリが開かない ``` ### 該当のソースコード ``` add_filter(‘jpeg_quality’, function($arg){return 100;}); ``` ``` add_filter(‘jpeg_quality’, create_function(‘$arg’,’return 100;’)); ``` ``` function jpeg_quality_callback($arg) { return (int)100; } add_filter('jpeg_quality', 'jpeg_quality_callback'); ``` ### 試したこと ・上記3種類のコードを試しました。 ・Jetpackというプラグインが原因の一つと指摘されているサイトが複数ありますが、そもそも入れていません。 ### 補足情報(FW/ツールのバージョンなど)
回答: ### 原因切り分け 以下、デバッグのために原因の切り分けをしてみてください。 1. テーマを子テーマから親テーマに変更してメディアライブラリをみてみる 2. 作成した子テーマから追加したコードを削除してメディアライブラリをみてみる 1でダメな場合な場合はそもそも動いていなかったという意味になるかと思います。 色々と試している途中で大きい画像をアップロードしてしまったといったことがある場合は、 大きい画像が原因で読み込みに時間がかかっている場合があります。 いずれにせよ、この場合は追加したコードが原因というわけではないということです。 2でダメな場合、作成した子テーマがそもそもの原因ということです。 こちらの場合も追加したコードが原因というわけではないということです。 1,2が問題ないことを確認したのちに、改めて、add_filter~~~の処理をfunction.phpに追加してみてください。 注意が必要なのは、PHPのバージョンによって書き方が違うということです。 以下、参照にしてみてください。 http://beginners-high.com/wordpress-img-resize/ アイキャッチ画像についてはプラグインなども色々あるため、 利用しているプラグインなどが原因の場合も考えられるかと思います。 どうしてもできない場合、関連しそうなプラグインを無効にしてから 試してみるといったこともやってみるといいかもしれません。 ### ちょっと解説 Wordpress用のアイキャッチ画像をアップロードする際に、Wordpressが気をきかせて ファイルサイズの面でも画像を縮小してくれています。 画質の劣化はこれが原因です。デフォルトでは90%に圧縮らしいです。 https://teratail.com/questions/input で、上記のコード(add_filter云々)はこの画像を「90%に圧縮する」から「100%に圧縮する」に変更するものです。「100%に圧縮する」はすなわち圧縮しないということですね。 ただ、この圧縮がどのタイミングで行われているかというと、画像をアップロードしたタイミングです。 つまり、上記のコード(add_filter云々)を追加しても既にアップロード済みの画像については適用されません。 この場合、既にアップロード済みの画像を1つずつアップロードし直す必要があります。 1つずつアップロードするのが面倒な場合は以下のプラグインがあるみたいです。 https://ja.wordpress.org/plugins/regenerate-thumbnails/ こちらのプラグインについては私は使ったことがないのでちょっとわかりませんが、ご参考まで。。。