保存数组不断增加数组的长度

时间:2012-08-16 作者:Bram

我使用wp all import来加载数据源,但当我设置一个自定义字段(主题需要)时,它会在存储之前不断修改它

当我把这个放在字段:a:7:{测试}

它将其另存为s:10“a:7:{test}”

即使我通过update\\u post\\u meta更新并手动将其设置在那里,它也会添加s:10。。。

我怎样才能解决这个问题,我必须用某种方式把绳子包起来吗?每个帖子的自定义字段都是相同的。我是否可以用其他方法在feeder的php中为每个帖子设置自定义字段?

编辑:

update_post_meta($pid,\'_attributes\',\'a:7:{test}\');  
在php中,将用s:10填充字段:“a:7:{test}”,而不仅仅是a:7:{test}

2 个回复
SO网友:Barry Carlyon

update\\u post\\u meta可能正在序列化。

在本例中,将其存储为序列化字符串

您传递的字符串不是正确序列化的数组。

如果将原始数组传递给它,它将自动将其转换为正确的序列化字符串。

正确的字符串是:1:{i:0;s:4:“test”},传递不应该序列化但可能会序列化的字符串。你最好将阵法作为一个阵法传入

如果要存储已序列化的对象,请直接进行数据库写入。

SO网友:Stephen Harris

更新元数据时,maybe_serialize() 已应用(see source). 这将序列化任何数组/字符串,但也将双重序列化序列化的数据。

您应该只传递一个实际数组。

如果有要取消序列化的序列化数组,可以使用maybe_unserialize(). 也就是说,正如已经指出的,a:7:{test} 不是正确序列化的数组。

结束

相关推荐

Output from Meta Box Array

我已经创建了一个元框,它成功地存储了post数据,但我在输出内容并以合理的方式显示它时遇到了困难,这超出了我对PHP的有限知识。我是一个养蜂人,我想记录我的蜂箱的检查情况,所以每个蜂箱都有一个记录,其中包含一定数量的字段。因此,我想遍历所有配置单元的colony数组,即直到$hive为空,然后以每个配置单元有一行的表的形式输出数据。目前,我已经成功地手动生成了表的第一行,但不知道如何设置一个循环来完成这项工作。<?php if (have_posts() ):?>