WordPress:解释数据库中插件和主题字符串值

时间:2012-06-14 作者:R.Vector

我已经安装了wordpress,我已经安装了几个插件,wordpress已经提供了两个主题。

今天我想问的是:插件和;数据库中的主题字符串值是什么意思?

示例[当插件处于活动状态时],表中有一个值:

a:3:{i:0;s:19:"akismet/akismet.php";i:1;s:9:"hello.php";i:2;s:37:"one-click-logout/one-click-logout.php";}
示例[主题文件夹中有主题时],表中有一个值:

a:2:{s:12:"twentyeleven";s:7:"/themes";s:9:"twentyten";s:7:"/themes";}
我可以从中得到“a”和“I”是什么意思的解释HERE , 但“s:”是我不知道的意思。如果我尝试将s:37更改为s:6或任何其他值,插件将被停用,因此s:37<<<;37一定是有什么意思或与插件有什么关系,这就是我想知道的。

3 个回复
最合适的回答,由SO网友:jessica 整理而成

值为serialized php array. 进一步的解释并不是特定于WordPress的,但这里您可以看到-‘s’是后续数组元素的字符串表示的长度(引号中字符串的长度)。一、 E.英寸

a:2:{s:12:"twentyeleven";s:7:"/themes";s:9:"twentyten";s:7:"/themes";}

中的“12”s:12 表示的长度twentyeleven.

SO网友:MathSmath

这些值是serialized. 您不应该手动编辑它们。

EDIT:

要详细说明,您可以通过WordPress使用以下函数来操作这些值(取决于它们是存储为选项还是post meta):

get_option()update_option()get_post_meta()update_post_meta()

SO网友:moraleida

这些是serialized strings, 或转换为字符串以存储在数据库中的数组/对象。

它们不会识别您对字符串本身所做的任何更改,如果您试图篡改它们,它们将抛出错误。它们以某种方式构建,以确保序列化之前存在的数据与取消序列化后返回的数据完全相同。

要能够更改值,您需要unserialize it优先:

$string = \'a:2:{s:12:"twentyeleven";s:7:"/themes";s:9:"twentyten";s:7:"/themes";}\';

$array = unserialize($string);

var_dump($array);
结果如下:

array(2) { ["twentyeleven"]=> string(7) "/themes" ["twentyten"]=> string(7) "/themes" } 

结束

相关推荐

Plugins_url()错误地返回带有www子域的URL

我正在开发一个插件,为了回答这个问题,我们称之为“我的插件”。我的插件目录如下所示:my-plugin/ |- image.jpg |- script.js |- script.php |- plugin.php |- ajax.php 在脚本中。php我有一段代码指定了一些JS。在其中,我需要一个ajax的URL。php。e、 g.:<script type=\"text/javascript\"> foo = jQuer