タグアーカイブ サムネイル

Tutor LMSでコース画像が小さくぼやける原因と画像サイズ変更の手順

Tutor LMSでコース画像が小さくぼやける原因と画像サイズ変更の手順

Tutor LMSのコース一覧でサムネイル画像が小さくぼやける症状は、プラグインが登録した専用画像サイズ(約370×235px)をテンプレートが呼び出し、ブラウザ側で大きな容器に引き伸ばしているのが主な原因だ。子テーマでテンプレートを上書きするか、フィルターフックで画像サイズを変更すれば解決する。

Tutor LMSでコース画像がぼやける仕組みと原因

Tutor LMSでコース画像がぼやける仕組みと原因

Tutor LMSはコース一覧ページを表示する際、専用の画像サイズを呼び出す。このサイズはプラグインがサーバー環境に登録したもので、コースカードのレイアウトに合わせて小さい寸法に設定されていることが多い。

問題は、テーマ側のスタイルシートがコースカードをより広い幅で表示しようとする場面だ。画像の実寸(約370×235px)に対して、実際の表示領域がそれを上回ると、ブラウザが画像を無理に拡大する。高解像度の元画像をアップロードしても、プラグインが生成した小さなサムネイルを参照している限り、ぼやけや文字の潰れは解消されない。

また、Tutor LMSのコースループ用テンプレートは標準の post_thumbnail_size フックを無視し、独自のサイズ指定を直接コード内に持っている。そのため、WordPressの標準設定から画像サイズを変更しても、コース一覧に反映されないという構造的な理由がある。

Before(症状)
元画像は高解像度(4K)でも
370×235pxのサムネイル生成 広い容器に引き伸ばし ぼやける・文字が読めない
After(修正後)
高解像度の画像サイズを直接参照
fullサイズ画像 表示領域に最適化 鮮明で読みやすい
症状の状態  修正後

このデモは、Tutor LMSが小さいサムネイルを呼び出してからブラウザが拡大する流れと、修正後に高解像度画像を直接参照する流れを示している。

テンプレート上書きで画像サイズを変更する手順

テンプレート上書きで画像サイズを変更する手順

最も確実な方法は、Tutor LMSのテンプレートファイルを子テーマにコピーし、画像サイズの指定を書き換えることだ。プラグイン本体のファイルを直接編集するとアップデートで上書きされるため、必ず子テーマを使う。

Tutor LMSのテンプレート構造を確認する

Tutor LMSのテンプレートは wp-content/plugins/tutor/templates/ ディレクトリ内に配置されている。コース一覧のカードを構成するテンプレートは、templates/course/loop/ または templates/loop/ 以下のファイル群だ。バージョンによって多少の違いはあるが、コースカードの表示を担当するファイルにサムネイル呼び出しが含まれている。

管理画面の「プラグイン」→「プラグインファイルエディター」からTutor LMSを選択し、templates/ フォルダを展開すると実ファイル名を確認できる。FTPで接続できるなら wp-content/plugins/tutor/templates/ を直接参照する方が速い。

子テーマにテンプレートをコピーする

対象のテンプレートファイルを子テーマ内の tutor/ ディレクトリにコピーする。Tutor LMSは子テーマの tutor/ フォルダを優先的に読み込む仕組みを持っている。コピー先のパスは wp-content/themes/子テーマ名/tutor/ だ。ディレクトリ構造を保ったままコピーする。

画像サイズの指定を変更する

コピーしたテンプレートファイル内の get_the_post_thumbnail() または tutor_course_loop_thumbnail() の呼び出し部分を探す。第二引数に指定されているサイズ名(例 'tutor-course-thumbnail')を 'full' または 'large' に変更する。

// 変更前
get_the_post_thumbnail($course_id, 'tutor-course-thumbnail');

// 変更後
get_the_post_thumbnail($course_id, 'full');

テンプレート内に the_post_thumbnail() が直接記述されている場合は、同じくサイズ引数を 'full' に置き換える。

STEP 1 templates/loop/ 内のコースカード用ファイルを特定する
STEP 2 子テーマの tutor/ ディレクトリに同一構造でコピーする
STEP 3 画像サイズの引数を full または large に変更する
STEP 4 キャッシュを削除し、コース一覧の表示を確認する

このデモは、テンプレート上書きの4つの手順を順番に示している。

フィルターフックで画像サイズを変更する方法

フィルターフックで画像サイズを変更する方法

テンプレートを編集せずに済ませたい場合は、Tutor LMSが提供するフィルターフックを利用する。functions.php に数行追加するだけで、コースループで呼び出される画像サイズを変更できる。

functions.phpにフィルターを追加する

子テーマの functions.php に以下のコードを追加する。tutor_course_thumbnail_size フックは、コースループで使われるサムネイルサイズを差し替えるためのものだ。

add_filter('tutor_course_thumbnail_size', function($size) {
    return 'full';
});

このコードは、Tutor LMSがコースカードのサムネイルを出力する際に参照するサイズ名を full に上書きする。元画像が十分な解像度でアップロードされていれば、一覧表示でも鮮明になる。

なお、プラグインのバージョンや使用中のテーマによってフック名の実装が異なる場合がある。テンプレート上書きの方が確実に効くため、フィルターで変化が見られない場合はテンプレート上書きに切り替えるのが確実だ。

サムネイル再生成とキャッシュのクリア

サムネイル再生成とキャッシュのクリア

画像サイズの指定を変更した後は、既存の画像に対して新しいサイズのサムネイルが生成されていない場合がある。特に full サイズを使う場合は元画像そのものを参照するため再生成は不要だが、large や独自サイズを使う場合は再生成が必要になる。

サムネイル再生成で古いサイズを更新する

「Regenerate Thumbnails」などの再生成プラグインを使うと、WordPressに登録されている全画像サイズを一括で作り直せる。再生成の所要時間は画像点数に依存するが、数百枚程度なら数分で完了する。

サイトキャッシュとブラウザキャッシュを削除する

変更後に表示が古いままの場合は、キャッシュ系プラグインの全削除と、ブラウザのキャッシュクリアを行う。CDNを利用している場合は、CDN側のキャッシュもパージする。これで新しい画像サイズがサーバーから配信される。

変更後チェック
サイズ変更 再生成 キャッシュ削除 表示確認
設定変更  再生成  キャッシュ

このデモは、画像サイズ変更後に確認すべき作業の流れを示している。

よくある質問

Tutor LMSのコース画像サイズはどこで登録されているのか?

Tutor LMSはプラグインのコード内で add_image_size() 関数を使って専用サイズを登録している。登録名は tutor-course-thumbnail などで、コースループ用テンプレートがこのサイズを参照する。標準のWordPress設定画面からは変更できない。

子テーマを作っていない場合はどうすればよいか?

まず子テーマを作成する。WordPress公式ドキュメントに従い、style.cssfunctions.php を含むフォルダを作成すればよい。親テーマを直接編集するとアップデートで変更が消えるため、子テーマ運用が安全だ。

画像を変更しても古いサイズのまま表示されるのはなぜか?

ブラウザキャッシュやサイトキャッシュが古い画像を保持している可能性が高い。キャッシュ系プラグインの全削除と、ブラウザのキャッシュクリアを行う。CDNを使っているならCDN側のパージも必要だ。

フィルターフックが効かない場合はどうする?

プラグインのバージョンやテーマの構造によって、特定のフックが実装されていない場合がある。その場合はテンプレート上書き方式に切り替える。テンプレートファイル内のサイズ指定を直接書き換えれば、フックの有無に関係なく確実に反映される。

CSSだけで画像を鮮明にできるか?

できない。CSSで image-rendering プロパティを調整しても、元の画像データが小さい限り拡大によるぼやけは残る。根本的な解決には、テンプレートやフィルターで大きなサイズの画像を呼び出す必要がある。

この記事のポイント

  • Tutor LMSのコース画像ぼやけは小さい専用サイズの参照が原因
  • 子テーマへのテンプレート上書きで確実に修正できる
  • フィルターフックでもサイズ変更が可能
  • サイズ変更後は再生成とキャッシュ削除が必須
  • CSSだけでは根本解決にならない