? ? ? ? 最近在研究wordpress,很想知道它的user-role-capabilities 是如何存储在数据表中的。它并没有采用传统方式,即user,role,capabilities ,user-role,role-capabilities 等分别存在一张表中。而是 采用key value 的形式 将信息浓缩在了value中。
? ? ? ?role,capabilities,role-capabilities 这三者的内容存在了wp_options表的option_name=wp_user_roles的value中,其值 形式如下 :
? ? ? ?a:6:{s:13:"administrator";a:2:{s:4:"name";s:13:"Administrator";s:12:"capabilities".......
? ? ? uer-role 的定义存在了 wp_usermeta表的 meta_key =wp_capabilities 的value中,其值形式如下:
? ? ??a:1:{s:13:"administrator";s:1:"1";}
?
? ? ? 这个值是怎么得到的呢,如何翻译?经过一番调查发现,这些值是wordpress 对象或数组 通过serialize() ,maybe_serialize()等函数序列化以后的结果。示例如下
?
?
?
- $myOptions = array(
- 'firstOption' => 1,
- 'secondOption' => 'second'
- );
- add_option('myOptions', $myOptions);
在数据库中,值变成如下内容:?
其中: ? ?a代表array i 代表integer s 代表string 数字代表长度
- a:2:{s:11:"firstOption";i:1;s:12:"secondOption";s:6:"second";}
?