我在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函数中使用,那么如何获取序列化数据呢?
最合适的回答,由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
.