概要
woocommerce_regenerate_images_intermediate_image_sizes
関数は、WooCommerce プラグイン内で画像サイズを再生成するために使用されます。この関数は、特に以下のような機能を実装する際によく使われます。
- 商品のサムネイルサイズ変更時の再生成
- 新しい画像サイズを追加した際の既存の画像の再処理
- 画像のリサイズ設定が変更された場合の適用
- メディアライブラリ内の画像サイズを一括でリフレッシュ
- サーバー移行後の画像サイズの再確認
- カスタムテーマやプラグインでの画像表示形式の最適化
構文
woocommerce_regenerate_images_intermediate_image_sizes();
パラメータ
この関数はパラメータを必要としません。
戻り値
この関数は、成功または失敗の情報を返すものではなく、ただ画像サイズの再生成を行います。
使用可能な WooCommerce および WordPress のバージョン
- WooCommerce のバージョン: 3.0.0 以上
- WordPress のバージョン: 4.0 以上
この関数のアクションでの使用可能性
アクション | 使用例 |
---|---|
mu_plugin_loaded | |
registered_post_type | |
plugins_loaded | 〇 |
wp_roles_init | |
setup_theme | |
after_setup_theme | |
set_current_user | |
init | |
register_sidebar | |
wp_loaded | 〇 |
send_headers | |
parse_query | |
pre_get_posts | |
wp | |
template_redirect | |
get_header | |
wp_head |
サンプルコード
サンプルコード1: 商品画像の再生成
add_action('woocommerce_product_set_image', 'custom_regenerate_images');
function custom_regenerate_images($product_id) {
if (class_exists('WooCommerce')) {
woocommerce_regenerate_images_intermediate_image_sizes();
}
}
このコードは、WooCommerceの商品画像が設定されるたびに、画像のリサイズを自動で実行します。
サンプルコード2: メディアアップロード後のリサイズ
add_action('add_attachment', 'upload_regenerate_images');
function upload_regenerate_images($attachment_id) {
if (class_exists('WooCommerce')) {
woocommerce_regenerate_images_intermediate_image_sizes();
}
}
このサンプルでは、新しいメディアがアップロードされた後に、画像サイズが再生成されるようにしています。
サンプルコード3: 一括画像再生成
add_action('admin_post_regenerate_product_images', 'regenerate_all_product_images');
function regenerate_all_product_images() {
global $wpdb;
$products = $wpdb->get_results("SELECT ID FROM {$wpdb->prefix}posts WHERE post_type = 'product'");
foreach ($products as $product) {
woocommerce_regenerate_images_intermediate_image_sizes();
}
wp_redirect(admin_url('admin.php?page=regeneration-success'));
exit;
}
このコードは、管理者が特定のアクションを実行したときに、すべての商品の画像を再生成します。
サンプルコード4: 商品更新時のリサイズチェック
add_action('woocommerce_update_product', 'check_regenerate_images_on_update');
function check_regenerate_images_on_update($product_id) {
if (has_post_thumbnail($product_id)) {
woocommerce_regenerate_images_intermediate_image_sizes();
}
}
このサンプルでは、商品の更新時に画像が設定されている場合に限り、画像サイズを再生成します。
サンプルコード5: 新しい画像サイズ追加後の処理
add_action('init', 'add_custom_image_sizes');
function add_custom_image_sizes() {
add_image_size('custom-size', 600, 400, true); // カスタム画像サイズを追加
woocommerce_regenerate_images_intermediate_image_sizes();
}
このコードは、カスタムの画像サイズを追加した際に、既存の画像を再生成します。