需求:
由于突发奇想把WordPress自动生成的缩略图片都删除了,只保留原图,现在网站很多文章显示错误。想要通过SQL命令修复一下。
目前文章的图片是:https://example.com/wp-content/uploads/2021/07/73194819431-1920x1080.png,由于缩略图已经删除,所以得改成https://example.com/wp-content/uploads/2021/07/73194819431.png才能访问。
也就是需要删除"-1920x1080", 文件名随机,缩略图尺寸随机,文件名后缀随机。
估计需要用到正则,不过我完全不会。
50元请大佬帮帮忙,经费有限,先到先得。万分感谢!
热议
推荐楼 liuyangge
可以先改下id测试一下看看,没问题把where条件删掉,全部跑一遍就ok了
推荐楼 siyi 1小时前
为什么要随机?
这个可能需要遍历,然后删除-1920x1080
表达不清哈,意思就是要删除-1920x1080之类的。因为图片大小不一样,所以产生的缩略图尺寸也是随机的呀。
可能是-1024x768或者-300x200, 不一定。
2楼 唐王李世民 1小时前
为什么要随机?
这个可能需要遍历,然后删除-1920x1080
sql不懂
3楼 airline 1小时前
你家一包烟50
5楼 siyi 1小时前
你家一包烟50
我不抽烟……
反正看别人抽的烟大概这个价格?
6楼 airline 1小时前
我不抽烟……
反正看别人抽的烟大概这个价格?
有钱人像我们这种穷人连十块的都抽不起
7楼 airline 1小时前
这边建议php遍历然后替换
截取-到.png之间的字符然后前面拼接上- replace一下就行了
8楼 siyi 半小时前
这边建议php遍历然后替换
截取-到.png之间的字符然后前面拼接上- replace一下就行了 ...
有没有那种能喂到嘴里的那种?
9楼 van 半小时前
你这个url是存在db里面的吗?
12楼 siyi 半小时前
你这个url是存在db里面的吗?
是啊,存在mysql里
wp_posts表的post_content字段里。
13楼 siyi 半小时前
不用正则,update + replace函数即可
不行的哦,因为图片大小不是固定的,所以后面不一定是-1920x1080,可能是800x1080,1200x1080,1920x300, 1920x1000 各种可能。
14楼 siyi 半小时前
先备份数据库
https://hostloc.com/thread-844936-1-1.html
这个不行哦
replace("字符串", "被替换内容","替换内容")
被替换内容怎么填,分辨率随机的呢。
15楼 airline 24分钟前
有没有那种能喂到嘴里的那种?
懒得写
16楼 落英缤纷 23分钟前
这个不行哦
replace("字符串", "被替换内容","替换内容")
被替换内容怎么填,分辨率随机的呢。 ...
那就替换多次啊看看有几种分辨率
17楼 siyi 20分钟前
那就替换多次啊看看有几种分辨率
不是啊,有6万多张图片呢,什么分辨率的都有,不一定是标准尺寸的。
可能是1920 也可能是1919,1918 1921……
18楼 pi9 18分钟前
好久没用WP了,随手给你写一个,表名和字段是按照我记忆来的。
update wp_posts set post_content = REGEXP_REPLACE(post_content, '\-[0-9]{3,5}x[0-9]{3,5}', '')where 1;
执行前先备份一下这张表。
19楼 liuyangge 9分钟前
不行的哦,因为图片大小不是固定的,所以后面不一定是-1920x1080,可能是800x1080,1200x1080,1920x300,...
喔 没注意看题,如果尺寸少一些的话 多跑几次就好了,多的话用其他语言跑一下就好了
20楼 siyi 8分钟前
好久没用WP了,随手给你写一个,表名和字段是按照我记忆来的。
update wp_posts set post_content = REGEX ...
大佬,我的是mysql5.7 不是mysql8,没有regexp_replace怎么办
22楼 uzerhode 6分钟前
寻找第一个'-',把它及之后全删了,再新字段加个.png
这个要正则么?
23楼 pi9 3分钟前
本地装个8 把数据修复了再导回线上。 你这个需求不用我那个函数,修复不了
申明:本文内容由网友收集分享,仅供学习参考使用。如文中内容侵犯到您的利益,请在文章下方留言,本站会第一时间进行处理。
评论前必须登录!
立即登录 注册