我正在通过SQL插入项目和属性。一切正常,但我无法弄清楚wp_postmeta中的_product_attributes
我理解逻辑,但s:7:“ pa_hrup” <-我在哪里获得7 和s:31:“ pa_kapaciteta-rezervoarja-za-go” <-我在哪里获得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;}}
答案 0 :(得分:1)
这是一个元数据字符串序列化数组,在这种情况下,s:31
是pa_kapaciteta-rezervoarja-za-go
的长度。 a:6
是每个数组(或子数组)的ok键/值对项的数量。
因此是序列化数组:
a:
开头,再加上数组中的键/值对和:
的数量。{
开始输入项目s:
表示字符串,加上字符串项(键或值)的长度,:
加上字符串或值字符串。;
分隔每个键或值组件}
结束项目 序列化的数组,可以使用WordPress maybe_unserialize()
(或PHP中的unserialize()
)未序列化 。
可以使用WordPress maybe_serialize()
(或PHP中的serialize()
)普通数组进行序列化。
诸如add_post_meta()或update_post_meta()之类的Wordpress函数将始终对数组进行序列化,然后再将meta_value
保存在wp_postmeta
表中。
与WooCommerce相同的是,它与CRUD Objects上的WC_Data
有一些相关的save()
方法和所有相关的数据存储类。
在序列化的字符串数组上使用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'
)
);