我正在管理数百个网站,需要更改部分序列化数据。 这是一个wordpress子主题,位于主题的“选项”设置之内。
使用此脚本
UPDATE wp_e4e5_options
SET option_value = REPLACE(option_value, 'Copyright | by <a href="https://company.com"', ' ')
a:1:{s:3:"copyright";s:17:"Copyright | by <a href="https://company.com"";}
我确定,它将找到序列化数据的一部分并替换。但事实并非如此。 它将设置重置为主题的标准设置。即使使用表中的Adminer.php手动编辑它,它也会重置。
我知道,这可能是在错误的论坛中,因为它与Wordpress有关,但我认为这是SQL的问题。
所以我的问题是:
如果我使用Adminer.php( phpMyAdmin),它将所有设置重置为标准设置。我怎么能够 仅编辑序列化数据的一部分,还是仅编辑上面显示的部分?
是什么使其“重置”为标准设置?
更新: 感谢@Kaperto,现在我有了这个工作代码,这给了我一个新问题。
UPDATE wp_e4e51a4870_options
SET option_value = REPLACE(option_value, 's:173:"© Copyright - Company name [nolink] | by <a href="https://company-name.com" target="_blank" rel="nofollow">Company Name</a>";', 's:40:"© Copyright - Company name [nolink]";')
问题是,它将用作ManageWP循环遍及数百个公司名称不同的网站的代码段。因此,字符串的第一部分是唯一的,但在管道|
之后,其余部分在所有站点上都是相同的。
所以我某种程度上需要这样做:
| by <a href="https://company-name.com" target="_blank" rel="nofollow">Company Name</a>"
s:173:"© Copyright -
Company name [nolink] | by <a href="https://company-
name.com" target="_blank"
rel="nofollow">Company Name</a>
使用纯SQL命令甚至可以实现吗?