最佳答案
您可以使用 phpMyAdmin 进行直接 SQL 查询批量删除所有产品变体图像,例如(在备份数据库之前):
UPDATE wp_postmeta as pm
JOIN wp_posts AS p ON pm.post_id = p.ID
SET pm.meta_value = ''
WHERE p.post_status = 'publish'
AND p.post_type = 'product_variation'
AND pm.meta_key = '_thumbnail_id'
或者您可以在自定义内置函数中使用此轻型 SQL 查询来删除所有变体图像(或者可选地仅删除相关的父变量产品 ID):
function remove_all_variations_images( $parent_id = 0 ){
global $wpdb;
$one_parent = $parent_id === 0 ? "" : "AND p.post_parent = $parent_id";
return $wpdb->query("
UPDATE {$wpdb->prefix}postmeta as pm
JOIN {$wpdb->prefix}posts AS p ON pm.post_id = p.ID
SET pm.meta_value = ''
WHERE p.post_status = 'publish'
AND p.post_type = 'product_variation'
AND pm.meta_key = '_thumbnail_id'
$one_parent
");
}
代码位于事件子主题(或事件主题)的 function.php 文件中。
使用情况(备份数据库之前):
对于批量的所有变体图像,您将添加到您的 function.php 文件中:
remove_all_variations_images();
然后保存并浏览您网站的任何页面。完成后将其删除。
对于一种特定的可变产品(假设可变产品 ID 72):
remove_all_variations_images(72);
然后保存并浏览您网站的任何页面。完成后将其删除。
关于php - 在 Woocommerce 中批量删除产品变体图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53129464/