几个版本以前WOOCommerce已经开始生成额外的图像缩略图,在我的情况下100x100和700x700(700x700实际上是我的WordPress安装的默认图像大小,所以我不想得到额外的副本)。
为了防止这种情况,我将以下代码添加到我的functions.php
:
function shapeSpace_customize_image_sizes($sizes) {
unset($sizes['shop_catalog']);
unset($sizes['shop_single']);
unset($sizes['shop_thumbnail']);
unset($sizes['woocommerce_gallery_thumbnail']);
unset($sizes['woocommerce_single']);
unset($sizes['woocommerce_thumbnail']);
}
add_filter('intermediate_image_sizes_advanced', 'shapeSpace_customize_image_sizes');
add_filter('max_srcset_image_width', create_function('', 'return 1;'));
它成功阻止WOOCommerce再次向我的服务器发送垃圾邮件。
所以现在我想删除所有那些-100x100和-700x700图像,但我不能这样做,因为它们在_wp_attachment_metadata
表的wp_postmeta
列中被引用。
引用总是放在"sizes"
和"image_meta"
之间,看起来像
"sizes";a:4:{s:18:"woocommerce_single";a:4:{s:4:"file";s:30:"IMAGE-700x700.jpg";s:5:"width";i:700;s:6:"height";i:700;s:9:"mime-type";s:10:"image/jpeg";}s:29:"woocommerce_gallery_thumbnail";a:4:{s:4:"file";s:30:"IMAGE-100x100.jpg";s:5:"width";i:100;s:6:"height";i:100;s:9:"mime-type";s:10:"image/jpeg";}s:11:"shop_single";a:4:{s:4:"file";s:30:"IMAGE-700x700.jpg";s:5:"width";i:700;s:6:"height";i:700;s:9:"mime-type";s:10:"image/jpeg";}s:14:"shop_thumbnail";a:4:{s:4:"file";s:30:"IMAGE-100x100.jpg";s:5:"width";i:100;s:6:"height";i:100;s:9:"mime-type";s:10:"image/jpeg";}}s:10:"image_meta"
非常大的字符串,但没有必要阅读它,因为实际的模板只是
"sizes";a:4:{SOME_TEXT}s:10:"image_meta"
a:4
之后的"sizes"
用于缩略图的数量。
我想找到并替换每一个
"sizes";a:4:{SOME_TEXT}s:10:"image_meta"
同
"sizes";a:0:{}s:10:"image_meta"
我可以手动完成,但不认为这对~1000张图片来说是个好主意。
MySQL查询是否可能?如果是这样的话会是什么?
先感谢您。
试试这个:
"sizes".*."image_meta"
放入“查找内容:”字段"sizes";a:0:{}s:10:"image_meta"
放入“替换为:”字段