wp_ajax_media_create_image_subsizes()


WordPressの関数wp_ajax_media_create_image_subsizes()は、アップロードされた画像のサブサイズ(リサイズバージョン)を生成するために使用されるAJAXハンドラです。

構文

wp_ajax_media_create_image_subsizes( int $attachment_id );
  • $attachment_id(int)— サブサイズを生成するメディアファイルの添付ID。

例1: 基本的なサブサイズ生成

アップロードされた画像のサブサイズを生成します。

wp_ajax_media_create_image_subsizes( get_the_ID() );

例2: カスタムフィルターフックの追加

サブサイズ生成前にフィルターフックを追加します。

add_filter('wp_generate_attachment_metadata', 'custom_filter'); wp_ajax_media_create_image_subsizes( get_post_thumbnail_id() );

例3: エラーハンドリング

サブサイズ生成時のエラーをキャッチします。

try{ wp_ajax_media_create_image_subsizes( attachment_url_to_postid($url) ); }catch(Exception $e){ error_log($e->getMessage()); }

例4: 非同期処理との連携

AJAX経由でサブサイズ生成をトリガーします。

add_action('wp_ajax_create_subsizes', function(){ wp_ajax_media_create_image_subsizes($_POST['attachment_id']); });

例5: 特定の画像サイズのみ生成

特定の画像サイズだけを生成するフィルターを適用します。

add_filter('intermediate_image_sizes', function($sizes){ return ['thumbnail']; }); wp_ajax_media_create_image_subsizes( get_post_thumbnail_id() );

例6: バッチ処理での使用

複数の画像に対してサブサイズを生成します。

foreach(get_posts(['post_type'=>'attachment']) as $post){ wp_ajax_media_create_image_subsizes($post->ID); }

例7: カスタムメタデータの更新

サブサイズ生成後にカスタムメタデータを更新します。

wp_ajax_media_create_image_subsizes($attachment_id); update_post_meta($attachment_id, 'processed', true);

注意点

  • この関数は管理者権限が必要です。
  • 大量の画像処理にはサーバー負荷がかかる可能性があります。
  • フロントエンドで使用する場合は適切な権限チェックが必要です。

関連機能: