首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >“启用媒体替换”插件不更新WPMeta中的序列化对象

“启用媒体替换”插件不更新WPMeta中的序列化对象
EN

WordPress Development用户
提问于 2019-11-13 20:56:55
回答 1查看 114关注 0票数 0

我们利用WooCommerce和一个名为products (https://woocommerce.com/products/product-documents/)的WooCommerce插件将PDF媒体文件与我在线商店中的产品关联起来。

然后,当新版本的PDF发布时,我们的客户端使用一个名为Enable (https://wordpress.org/plugins/enable-media-replace/)的插件来交换媒体文件。我们希望所有的产品文档链接被更新。

如果我们允许插件重命名新文件以匹配旧的文件名,这是很好的。但是,如果我们请求插件更改旧的链接以匹配新的文件名,那么它只能在产品内容本身内工作,而不是在产品文档的链接中工作。实际上,它完全清除了产品文档链接数据。

我们花了一段时间才找出罪魁祸首,但我们终于找到了,我不知道该在哪里寻求帮助,也不知道如何在我自己中编码。

允许我们将任意数量的文档链接到一个WooCommerce插件,并将信息与文档一起存储在元记录中,比如本文后面的示例。该插件使用WP标准序列化方法将文档数据序列化为如下(单个文档):

代码语言:javascript
复制
{s:5:"label";s:19:"WAW-2322 Spec Sheet";s:13:"file_location";s:75:"https://dc2willoughbyc.wpengine.com/wp-content/uploads/2018/01/WAW-2322.pdf";}

当我们要求一个媒体文件替换另一个媒体文件(使用不同的名称)时,“启用媒体替换”插件确实会更改文件名(在上面的示例中,从WAW-2322.pdf更改为ABCD.pdf )就是一个例子。但是,它不会更新序列化对象的"s:75“部分,该部分表示要跟随的字符串的长度。由于文件的长度改变了(减少了4个字符),WP不能再将字符串反序列化为一个对象,我们的数据就是列表。

我们的要求是“启用媒体替换”要考虑WPMeta字段中的对象序列化,不仅要更新文件名,还要更新序列化对象中的字符串长度。其他搜索/替换插件(如“更好的搜索和替换”https://wordpress.org/plugins/search-and-replace/)适当地照顾到了这种替换,但是“启用媒体替换”的UI更适合我们的客户使用(也更不危险!)

我们将感谢您对这一问题的反馈和协助。

以下是完整的样本数据。插件将替换文件名,但不会相应地更改文件名的字符串长度。

代码语言:javascript
复制
a:1:{i:0;a:3:{s:4:"name";s:0:"";s:7:"default";b:1;s:9:"documents";a:7:{i:0;a:2:{s:5:"label";s:19:"WAW-2322 Spec Sheet";s:13:"file_location";s:75:"https://dc2willoughbyc.wpengine.com/wp-content/uploads/2018/01/WAW-2322.pdf";}i:1;a:2:{s:5:"label";s:32:"WORD formatted CSI specification";s:13:"file_location";s:99:"https://dc2willoughbyc.wpengine.com/wp-content/uploads/2017/09/224233_Willoughby_Washfountains.docx";}i:2;a:2:{s:5:"label";s:16:"AutoCAD DWG file";s:13:"file_location";s:75:"https://dc2willoughbyc.wpengine.com/wp-content/uploads/2017/09/Aquasurf.dwg";}i:3;a:2:{s:5:"label";s:16:"DXF drawing file";s:13:"file_location";s:83:"https://dc2willoughbyc.wpengine.com/wp-content/uploads/2018/01/DWG_DXF/Aquasurf.dxf";}i:4;a:2:{s:5:"label";s:37:"Install and maintenance documentation";s:13:"file_location";s:86:"https://dc2willoughbyc.wpengine.com/wp-content/uploads/2018/01/WAW-2322-Series-IOM.pdf";}i:5;a:2:{s:5:"label";s:22:"AquaSurf® color chart";s:13:"file_location";s:88:"https://dc2willoughbyc.wpengine.com/wp-content/uploads/2017/05/Aqua-Surf-Color-Table.pdf";}i:6;a:2:{s:5:"label";s:11:"REVIT files";s:13:"file_location";s:114:"https://dc2willoughbyc.wpengine.com/wp-content/uploads/2018/01/AquaWave-Lavatory-2_Station-Willoughby-WAW-2322.rfa";}}}}
EN

回答 1

WordPress Development用户

回答已采纳

发布于 2019-11-18 16:35:34

插件的创建者知道这个问题,并且正在研究解决方案.

详细信息:https://wordpress.org/support/topic/replacing-media-paths-in-serialized-wpmeta-data/#post-12146774

票数 0
EN
页面原文内容由WordPress Development提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://wordpress.stackexchange.com/questions/352516

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档