Title: 投稿タイプごとに必要な画像サイズのみ自動生成させたい
Last modified: 2019年7月10日

---

# 投稿タイプごとに必要な画像サイズのみ自動生成させたい

 *  解決済 [Oracle](https://ja.wordpress.org/support/users/kratecre/)
 * (@kratecre)
 * [7年、 3ヶ月前](https://ja.wordpress.org/support/topic/%e6%8a%95%e7%a8%bf%e3%82%bf%e3%82%a4%e3%83%97%e3%81%94%e3%81%a8%e3%81%ab%e5%bf%85%e8%a6%81%e3%81%aa%e7%94%bb%e5%83%8f%e3%82%b5%e3%82%a4%e3%82%ba%e3%81%ae%e3%81%bf%e8%87%aa%e5%8b%95%e7%94%9f%e6%88%90/)
 * WordPress 4.9.10 までは、以下のコードで投稿タイプごとに必要な画像サイズのみ自動
   生成させることができたのですが、WordPress 5.1.1 と WordPress 5.2.2 では、add_image_size
   で追加したサイズも含め全ての画像サイズが自動生成されてしまいました。
 *     ```
       投稿タイプ product
   
       // 画像サイズ product_thumb を追加
       add_image_size('product_thumb', 1000, 580, true);
   
       function reduce_image_sizes($sizes) {
         $type = get_post_type($_REQUEST['post_id']);
         foreach ( $sizes as $key => $value ) {
   
           if ( $type == 'product' && ($value != 'large' && $value != 'product_thumb') ) { 
             unset($sizes[$key]);
           }
   
         }
         return $sizes;
       }
       add_action('intermediate_image_sizes', 'reduce_image_sizes');
       ```
   
 * WordPress 5.1.1 に Classic Editor プラグインをインストールして画像をアップロード
   すると、これまでどおり必要な画像サイズのみ自動生成させることができました。
 * また、単純に投稿タイプの判定をなくして intermediate_image_sizes フィルターや 
   intermediate_image_sizes_advanced フィルターにフックすると不要な画像サイズを削除
   できました。
 *     ```
       function reduce_image_sizes($sizes) {
         unset( $sizes['thumbnail'] );
         unset( $sizes['medium'] );
         return $sizes;
       }
       add_filter( 'intermediate_image_sizes_advanced', 'reduce_image_sizes' );
       ```
   
 * 新しいブロックエディタ（Gutenberg）からアップロードした画像の投稿IDの取得・判定
   ができていない思うのですが、私の設計したテーマに依存した事象なのか、WordPress
   の仕様変更によるものなのか、わかりません。
 * WordPress の仕様変更による場合、新しいブロックエディタ（Gutenberg）からアップ
   ロードした画像を投稿タイプごとに必要な画像サイズのみ自動生成させる方法は他にある
   でしょうか？
 * intermediate_image_sizes_advanced について調べたところ、5.1.0 から $attachment_id
   が引数に追加されているのですが、$attachment_id を利用して投稿タイプを判定する
   ことなどはできないでしょうか？
    [［Code Reference］intermediate_image_sizes_advanced](https://developer.wordpress.org/reference/hooks/intermediate_image_sizes_advanced/#source)
 * ご教示いただけると幸いです。どうぞ、よろしくお願いします。

4件の返信を表示中 - 1 - 4件目 (全4件中)

 *  [ishitaka](https://ja.wordpress.org/support/users/ishitaka/)
 * (@ishitaka)
 * [7年、 3ヶ月前](https://ja.wordpress.org/support/topic/%e6%8a%95%e7%a8%bf%e3%82%bf%e3%82%a4%e3%83%97%e3%81%94%e3%81%a8%e3%81%ab%e5%bf%85%e8%a6%81%e3%81%aa%e7%94%bb%e5%83%8f%e3%82%b5%e3%82%a4%e3%82%ba%e3%81%ae%e3%81%bf%e8%87%aa%e5%8b%95%e7%94%9f%e6%88%90/#post-237613)
 * こんにちは
 * intermediate_image_sizes フックの時点では、$_REQUEST[‘post_id’] は存在しないよう
   です。
    $_REQUEST[‘post’] を使用するといいかしれません。
 * 変更前:
    `$type = get_post_type($_REQUEST['post_id']);`
 * 変更後:
 *     ```
       $post_id = empty( $_REQUEST['post_ID'] ) ? absint( $_REQUEST['post'] ) : absint( $_REQUEST['post_ID'] );
       $type = get_post_type( $post_id );
       ```
   
    -  この返信は7年、 3ヶ月前に[ishitaka](https://ja.wordpress.org/support/users/ishitaka/)
      が編集しました。
 *  トピック投稿者 [Oracle](https://ja.wordpress.org/support/users/kratecre/)
 * (@kratecre)
 * [7年、 3ヶ月前](https://ja.wordpress.org/support/topic/%e6%8a%95%e7%a8%bf%e3%82%bf%e3%82%a4%e3%83%97%e3%81%94%e3%81%a8%e3%81%ab%e5%bf%85%e8%a6%81%e3%81%aa%e7%94%bb%e5%83%8f%e3%82%b5%e3%82%a4%e3%82%ba%e3%81%ae%e3%81%bf%e8%87%aa%e5%8b%95%e7%94%9f%e6%88%90/#post-237627)
 * ishitakaさん、早々にご回答いただきありがとうございます！
 * 教えていただいたコードに書き換えたところ、投稿タイプごとに必要な画像を自動生成
   させることができました！
    自分では解決できずに悩んでいたので質問してよかったです。
   本当にありがとうございます！！
 * 教えていただいたコードについて、きちんと理解したいのですが、
    $_REQUEST[‘post’]
   や $_REQUEST[‘post_ID’] を absint() で変換されていますが、 このようにされている
   理由を教えていただけますでしょうか。
 * function.php内で配列やオブジェクトの中身を確認する方法がわからず、
    その理由を
   自身で確認できませんでした。
 * お手数をおかけしますが、どうぞよろしくお願いします。
 *  [ishitaka](https://ja.wordpress.org/support/users/ishitaka/)
 * (@ishitaka)
 * [7年、 3ヶ月前](https://ja.wordpress.org/support/topic/%e6%8a%95%e7%a8%bf%e3%82%bf%e3%82%a4%e3%83%97%e3%81%94%e3%81%a8%e3%81%ab%e5%bf%85%e8%a6%81%e3%81%aa%e7%94%bb%e5%83%8f%e3%82%b5%e3%82%a4%e3%82%ba%e3%81%ae%e3%81%bf%e8%87%aa%e5%8b%95%e7%94%9f%e6%88%90/#post-237629)
 * > $_REQUEST[‘post’] や $_REQUEST[‘post_ID’] を absint() で変換されていますが、
   > 
   > このようにされている理由を教えていただけますでしょうか。
 * $_REQUEST[‘post’] が投稿 ID ではない場合を考慮して、念の為（仕様が変更されたり
   とか）に投稿 ID として有効な整数値に変換しています。この場合、あまり意味はない
   かも・・・です。(^^
    -  この返信は7年、 3ヶ月前に[ishitaka](https://ja.wordpress.org/support/users/ishitaka/)
      が編集しました。
 *  トピック投稿者 [Oracle](https://ja.wordpress.org/support/users/kratecre/)
 * (@kratecre)
 * [7年、 3ヶ月前](https://ja.wordpress.org/support/topic/%e6%8a%95%e7%a8%bf%e3%82%bf%e3%82%a4%e3%83%97%e3%81%94%e3%81%a8%e3%81%ab%e5%bf%85%e8%a6%81%e3%81%aa%e7%94%bb%e5%83%8f%e3%82%b5%e3%82%a4%e3%82%ba%e3%81%ae%e3%81%bf%e8%87%aa%e5%8b%95%e7%94%9f%e6%88%90/#post-237631)
 * $_REQUEST[‘post’] が投稿IDでない場合も考慮…なるほどです！とても勉強になりました。
   本当に、ほんとーにありがとうございました！！！

4件の返信を表示中 - 1 - 4件目 (全4件中)

 トピック「投稿タイプごとに必要な画像サイズのみ自動生成させたい」には新たに返信する
ことはできません。

## タグ

 * [ブロックエディタ](https://ja.wordpress.org/support/topic-tag/%e3%83%96%e3%83%ad%e3%83%83%e3%82%af%e3%82%a8%e3%83%87%e3%82%a3%e3%82%bf/)
 * [画像](https://ja.wordpress.org/support/topic-tag/%e7%94%bb%e5%83%8f/)
 * [自動生成](https://ja.wordpress.org/support/topic-tag/%e8%87%aa%e5%8b%95%e7%94%9f%e6%88%90/)
 * [Gutenberg](https://ja.wordpress.org/support/topic-tag/gutenberg/)
 * [intermediate_image_sizes](https://ja.wordpress.org/support/topic-tag/intermediate_image_sizes/)
 * [intermediate_image_sizes_advanced](https://ja.wordpress.org/support/topic-tag/intermediate_image_sizes_advanced/)
 * [投稿タイプ](https://ja.wordpress.org/support/topic-tag/%e6%8a%95%e7%a8%bf%e3%82%bf%e3%82%a4%e3%83%97/)

 * フォーラム: [使い方全般](https://ja.wordpress.org/support/forum/how-to-and-troubleshooting/)
 * 4件の返信
 * 2人の参加者
 * 最後の返信者: [Oracle](https://ja.wordpress.org/support/users/kratecre/)
 * 最後の活動: [7年、 3ヶ月前](https://ja.wordpress.org/support/topic/%e6%8a%95%e7%a8%bf%e3%82%bf%e3%82%a4%e3%83%97%e3%81%94%e3%81%a8%e3%81%ab%e5%bf%85%e8%a6%81%e3%81%aa%e7%94%bb%e5%83%8f%e3%82%b5%e3%82%a4%e3%82%ba%e3%81%ae%e3%81%bf%e8%87%aa%e5%8b%95%e7%94%9f%e6%88%90/#post-237631)
 * 状態: 解決済

## トピック

### 人気のトピック

### 返信がないトピック

### サポート関連ではないトピック

### 解決済みのトピック

### 未解決のトピック

### すべてのトピック
