我通过SQL插入项目和属性。 一切工作正常,但我无法弄清楚在wp_postmeta如何_product_attributes
我理解的逻辑,除了S:7: “pa_hrup”< - 我在哪里可以拿到7和s:31: “pa_kapaciteta-rezervoarja-ZA-去”< - 我在哪里得到31 ..
a:2:{s:7:"pa_hrup";a:6:{s:4:"name";s:7:"pa_hrup";s:5:"value";s:0:"";s:8:"position";i:0;s:10:"is_visible";i:1;s:12:"is_variation";i:0;s:11:"is_taxonomy";i:1;}s:31:"pa_kapaciteta-rezervoarja-za-go";a:6:{s:4:"name";s:31:"pa_kapaciteta-rezervoarja-za-go";s:5:"value";s:0:"";s:8:"position";i:1;s:10:"is_visible";i:1;s:12:"is_variation";i:0;s:11:"is_taxonomy";i:1;}}
它是一种元数据串序列阵列和s:31
是长度pa_kapaciteta-rezervoarja-za-go
在这种情况下。 a:6
是为每个阵列(或子阵列)的数量确定的键/值对的项目。
因此,一个seriallized阵列:
- 总是以
a:
为阵,再加上项目的键/值对的它的数量和:
。 - 然后
{
用于项目启动 - 然后
s:
字符串,以及字符串项(键或值)的lenght :
加键或值的字符串。 - 然后
;
以分离每个键或值部件 - 然后
}
的项目结束
串行化的阵列 ,可以使用WordPress被解序列化 maybe_unserialize()
或unserialize()
在PHP)。
一个正常的阵列可以利用使用WordPress被序列 maybe_serialize()
或serialize()
在PHP)。
像add_post_meta()或update_post_meta()WordPress的功能将总是保存前序列化阵列meta_value
在wp_postmeta
表。
对于WooCommerce同样的事情,一些相关WC_Data
方法save()
的CRUD对象和所有相关的数据存储类。
使用maybe_unserialize()
您的序列化的字符串数组会给:
$values = array(
'pa_hrup' => array(
'name' => 'pa_hrup',
'value' => '',
'position' => '0',
'is_visible' => '1',
'is_variation' => '0',
'is_taxonomy' => '1'
),
'pa_kapaciteta-rezervoarja-za-go' => array(
'name' => 'pa_kapaciteta-rezervoarja-za-go',
'value' => '',
'position' => '1',
'is_visible' => '1',
'is_variation' => '0',
'is_taxonomy' => '1'
)
);