ヘッダー画像
Blog
2018.09.12

自動生成する画像サイズを、投稿タイプによって変える方法

1.WordPressは3種類の画像サイズを自動生成している

通常、WordPressに画像をアップロードする際は、メディアコンバーターを使用します。その時、特に設定をいじっていなければ、3種類のサイズで画像を自動生成します。
[WordPressが自動生成するサイズ一覧]

  • 150×150(切抜きあり)
  • 300×300(切抜きなし)
  • 1024×1024(切抜きなし)

すべての画像に対して同じサイズで生成してもいいなら、設定を変更するだけでOKです。

1.1.自動生成サイズの変更方法

[設定]→[メディア]

「メディア設定」
自動生成させたいサイズをそれぞれ指定します。
幅と高さにそれぞれ“0”を入力すると、そのサイズの画像は自動生成されなくなります。

2.投稿タイプによってサイズを変えるなら、functions.phpを編集する

通常の投稿タイプのほかに、カスタム投稿を使っていて、サムネイルのサイズを変えたいときは、functions.phpにコードを書くことで解決します。

ちなみに、当サイトもBlog(通常投稿)とWorks(カスタム投稿)でサムネイルのサイズを変えています。

下記コードをfunctions.phpに貼り付け、投稿タイプの名前や生成サイズを変更して使用してください。


/**
 *アイキャッチと、中サイズの画像を生成。切抜きで
 */
add_image_size( 'thumbnail', 150, 150, true );
add_image_size( 'm-size', 300, 300, true );

// 投稿タイプ別のメディアサイズの設定
function media_settings_by_post_type( $sizes ) {
  $type = get_post_type($_REQUEST['post_id']);
  foreach($sizes as $key => $value){
    // 投稿タイプがpostで、画像がthumbnail以外の場合
    if( $type=='post'  &&  ( $value != 'thumbnail') ) {
      // 画像の追加設定から除外する
      unset($sizes[$key]);
    }
 
    // 投稿タイプがworksで、画像がm-size以外の場合
    if($type=='works'  &&  $value != 'm-size') {
      // 画像の追加設定から除外する
      unset($sizes[$key]);
    }
  }
  return $sizes;
}
add_action( 'intermediate_image_sizes', 'media_settings_by_post_type' );