WordPressテーマ変更後に古いサムネイルは絶対に削除するな

サイト運営

最近は有料や無料のWordpressのテーマの選択肢が増えています。カッコいいテーマがあれば乗り換えてみようかと思う人も多いと思います。

テーマの変更そのものは切り替えれば終わりですが、テーマを切り替えるとよく起こる問題が2つあります。

  • サムネイルの画像サイズがおかしくなる
  • ウィジットがなくなる

この記事では、テーマ切り替え時にサムネイルのサイズがおかしくなった時の対処法とその時の注意点について書きたいと思います。

テーマ変更するとサムネイル画像がおかしくなる理由

WordPressテーマは、テーマごとに使用するサムネイルサイズが違います。Wordpressでは画像をアップロードするたびにテーマで決めたサムネイルの種類分、画像を作成してくれます。

ここで大事なことは、

WordPressでは、画像をアップロードした時にそのテーマで必要なサムネイル一式が作成される

ということです。

そのルールに従うと、テーマ切り替え前と後で必要なサムネイルサイズが違う場合、過去にアップロードした画像については過去のテーマのサムネイルサイズしか存在しないことになります。

その状況でテーマを切り替えてしまうと投稿一覧のアイキャッチ画像やサイドバーなどに表示したサムネイル画像のサイズがおかしなことになります。

過去の画像も新テーマで再度アップロードしないとダメなのか?

過去にアップロードした画像を新テーマで使うには、過去の画像を新テーマで再度アップロードしないとダメなのでしょうか?

そんなことはありません。

便利なプラグインがありますので、それを使えばメンドクサイことをしなくて済みます。

サムネイル再生プラグインの便利で危険なオプション

便利なプラグインとは、Regenerate Thumbnailsと言うプラグインです。

Regenerate Thumbnails
Regenerate the thumbnails for one or more of your image uploads. Useful when changing their sizes or your theme.

とても高機能で便利なプラグインなのですが、高機能ゆえに初心者が陥りやすい罠が仕掛けられています。

このプラグインには、使用していないサムネイルサイズの画像を削除するというオプションがあります。

ちょっと意味が解らない、と言う人にもう少し具体的に言います。

現在のテーマのサムネイル画像設定にない画像サイズのサムネイル画像を見つけてキレイに削除してくれます。つまり、古いテーマでしか使わないサイズのサムネイル画像が削除されるのです。

一見良さそうに思えます。

このオプションの使い道はサイドバーなどで使用する小さいサムネイル画像サイズを変更した時とかに実行するためのものでテーマを切り替えた時に実施すべきものではありません。

このオプションで削除した画像は新テーマでは使用されることがないサイズの画像ですが、実は古いテーマで作成した記事に張り付いていたりします。

削除してしまうとその記事の画像がごっそり無くなるので画像が表示されなくなります。

過去記事の中に埋め込まれた画像のURLを新しいサムネイルサイズの画像にすべて変更しなければ表示されないままです。一定の規則でファイル名が付いていれば置換すれば良さそうなものですが、画像ファイルのファイル名はリサイズ後の画像サイズが付いており、画像毎に違ったりするので単純に置換できません。

サムネイルを削除して記事内の画像が表示されなくなったらどうすればよい?

解決策は古いテーマで使用していたサムネイルサイズの定義を追加して再度プラグインでサムネイルを生成しなおすしかありません。そうなると、新テーマで使わないと思って画像を削除した意味がなくなりますが仕方ありません。

過去のテーマで使用していたサムネイルサイズの定義を調べます。

Regenerate Thumbnailsを実行する画面で定義されているサムネイルサイズを確認できます。

サムネイルサイズの定義をfunction.phpに追加します。

古いテーマにあって、新しいテーマにないサムネイルサイズを追加します。

以下はイメージです。

function add_thumbnail_size() {
add_theme_support( 'post-thumbnails' );

add_image_size( 'medium_large', '768', '0', false );
add_image_size( 'thumb100', '100', '100', true );
add_image_size( 'widget', '36', '36', true );
add_image_size( 'square', '180', '180', true );
add_image_size( 'featured', '1500', '430', true );
add_image_size( 'featured_large', '1500', '630', true );
add_image_size( 'extra_large', '1500', '1500', false );
add_image_size( 'portfolio', '495', '400', true );
add_image_size( 'portfolio_small', '260', '185', true );
add_image_size( 'gallery', '845', '684', true );
add_image_size( 'magazine', '710', '375', true );
add_image_size( 'masonry', '705', '705', false );
add_image_size( 'entry_with_sidebar', '845', '600', true );
add_image_size( 'entry_without_sidebar', '1210', '1200', true );
add_image_size( 'shop_thumbnail', '120', '120', true );
add_image_size( 'shop_catalog', '450', '450', true );
add_image_size( 'shop_single', '450', '999', false );
add_image_size( 'medium_large', '768', '0', false );
}
add_action( 'after_setup_theme', 'add_thumbnail_size' );

 

Regenerate Thumbnailsでサムネイルを再生成します。

サムネイルの定義を追加したら、Regenerate Thumbnailsでサムネイルを再生成します。

これでめでたく、古いテーマで作成したサムネイルが復活して、記事内の画像が表示されるようになります。

まとめ

テーマを切り替えてサムネイルサイズがおかしくなったら、プラグインでサムネイル画像を再生する。しかし、その時には未使用のサムネイルサイズの画像を削除してはいけない。というのがこの記事で言いたいことでした。

 

タイトルとURLをコピーしました