如何从WordPress选项中获取序列化数据

时间:2013-07-11 作者:David Garcia

我在wp选项中有以下序列化数据a:2:{s:5:"Title";s:11:"your title";s:7:"Message";s:20:"Hola testing testing";}

我想把它放回表单中使用,并在前端显示它,我试过了

<?php echo get_option(\'notice_data[Message]\'); ?>
这是阵列

$notice_data = array(
    \'Title\' => \'\',
    \'Message\' => \'\'
);
add_option("notice_data", \'Default\', \'\', \'yes\');
我正在创建一个插件,该插件有一个设置页面,其中包含两个表单,将数据保存在wp选项中,以便jquery函数在js文件中使用,这里是设置页面的一部分;

<textarea name="notice_data[Title]" id="notice_data" />
<?php echo get_option(\'notice_data[Title]\'); ?>
</textarea>
</td>
</tr>
<tr valign="top">
<th width="92" scope="row">Body Message</th>
<td width="406">
<textarea name="notice_data[Message]" id="notice_data" cols="40" rows="10" />
<?php echo get_option(\'notice_data[Message]\'); ?>
</textarea>
我还对脚本进行了本地化,以获取保存在wp选项中的数据,以便在满足某些条件时显示消息的jquery函数中使用,那么如何获取序列化数据呢?

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

不,这行不通:

<?php echo get_option(\'notice_data[Message]\'); ?>
因为get_option 将整个期权价值option_name, 它不会提取序列化数组的片段。你要的是一把钥匙(option_name) 按字面意思调用notice_data[Message]. 假设您已将选项另存为notice_data 您不会得到匹配,我甚至不确定选项名称中是否支持括号。我从没试过。

你需要的是。。。

$notice_data = get_option(\'notice_data\');
echo $notice_data[\'Message\'];
您说过您正在“本地化脚本”。因此,为了供jQuery/Javascript使用,您可以执行以下操作(almost completely cribbed from the Codex):

$notice_data = get_option(\'notice_data\');

wp_enqueue_script( \'some_handle\' );
$translation_array = array( 
    \'notice_data\' => $notice_data[\'Message\'] 
);
wp_localize_script( \'some_handle\', \'object_name\', $translation_array );
您的Javascript应该可以作为object_name.notice_data.

结束

相关推荐

Options.php loop won't show!

我正在为存储在选项中的本地主机上的主题创建选项面板。php文件。我的选项面板将有两个主回路。第一个是列出不同的部分,第二个将创建这些部分。我刚刚编写了第一个循环,它在运行时不会显示任何内容。此循环和一些周围html的代码是:<aside> <nav> <ul> <?php foreach ($options as $value){ switch