我不得不移动我的WordPress网站并对媒体做了一些清理工作,然后运行插件将已清理的媒体重新插入数据库。它的方式是通过查看目录,所以现在而不是只有文件:xyz.jpg,我有xyz-150x150,xyz-200x200等。我想在我的SQL上运行一个正则表达式来删除所有具有_wp_attached_file的附件,然后它们遵循以下命名方案“name-”“sizes”。例如:
INSERT INTO `wp_postmeta` VALUES(2379, 2152, '_wp_attached_file', '2010/09/Oneonta-Gorge-leaves-150x150.jpg');
这整行将被删除,但看起来像这样的行仍将保留:
INSERT INTO `wp_postmeta` VALUES(2379, 2152, '_wp_attached_file', '2010/09/Oneonta-Gorge-leaves.jpg');
另外,如果您认为删除-200x200更容易,然后运行另一个脚本来删除重复的行,那么也可以。我有不同的维度:
答案 0 :(得分:0)
这是你可以尝试的东西。第一个查询将选择具有尺寸后缀的所有图像。这只是为了检查查询的完整性,以确保您选择所需的图像。
select * from wp_postmeta where meta_key = '_wp_attached_file' and meta_value regexp '.+-[0-9]{3}x[0-9]{3}\.(jpg|gif|png)$'
如果您对结果满意,可以运行删除查询:
delete from wp_postmeta where meta_key = '_wp_attached_file' and meta_value regexp '.+-[0-9]{3}x[0-9]{3}\.(jpg|gif|png)$'
或者您可以使用LIKE
。你必须为每个维度运行它。此查询还假定使用三个字符的扩展名,例如gif,jpg或png。
select * FROM wp_postmeta WHERE meta_key = '_wp_attached_file' and meta_value LIKE '%-150x150.___'