投稿タイプごとに必要な画像サイズのみ自動生成させたい
-
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ご教示いただけると幸いです。どうぞ、よろしくお願いします。
- トピック「投稿タイプごとに必要な画像サイズのみ自動生成させたい」には新たに返信することはできません。