在主题选项数组中使用数组-多个值

时间:2011-09-09 作者:LearnWebCode

很抱歉,如果其他地方对此进行了广泛报道,我不知道如何表达我对该主题的搜索。

基本上,不是使用以下标准代码在WP选项中存储数据。。。

$options = array (
array("name" => __(\'Font\',\'mytheme\'),
    "desc" => __(\'Change the font face)\',\'mytheme\'),
    "id" => "mytheme_font",
    "std" => "Arial",
    "type" => "text"),
array("name" => __(\'Alternate Font\',\'mytheme\'),
    "desc" => __(\'Change the alternate font face)\',\'mytheme\'),
    "id" => "mytheme_font_alternate",
    "std" => "Tahoma",
    "type" => "text"),
);
相反,我希望在“std”部分中使用自己的数组存储多个值,如下所示:

    $options = array (
        array("name" => __(\'Font\',\'mytheme\'),
            "desc" => __(\'Change the font face)\',\'mytheme\'),
            "id" => "mytheme_font",
            "std" => array(\'size\' => \'10px\', \'face\' => \'Arial\', \'color\' => \'#000000\'),
            "type" => "text"),
        array("name" => __(\'Alternate Font\',\'mytheme\'),
            "desc" => __(\'Change the alternate font face)\',\'mytheme\'),
            "id" => "mytheme_font_alternate",
            "std" => array(\'size\' => \'13px\', \'face\' => \'Tahoma\', \'color\' => \'#FF0000\'),
            "type" => "text"),
        );
我假设这是允许的,但考虑到这一点,我不知道如何:

1) 知道在管理表单输入中使用哪个名称/id来表示进入“大小”、“面部”和“颜色”。

例如,在没有多维数组的标准代码中,我通常会使用如下代码:

<input name="<?php echo $value[\'id\']; ?>" id="<?php echo $value[\'id\']; ?>" type="text" value="<?php echo stripslashes(get_option( $value[\'id\'], $value[\'std\'] )); ?>" />
我不确定输入的“name”和“id”部分应该放什么。

2) 如何在WP主题中检索这些值?我通常使用这样的代码:

// Make values available
global $options;
foreach ($options as $value) {
$$value[\'id\'] = get_option($value[\'id\'], $value[\'std\']);
}

// Print the actual value
<?php echo $mytheme_font; ?>;}
非常感谢您的帮助!如果有人对这个主题有任何想法或了解任何教程,那就太棒了!非常感谢。

1 个回复
SO网友:Otto

假设此阵列为示例用法:

$options = array(
    "name" => __(\'Font\',\'mytheme\'),
    "desc" => __(\'Change the font face)\',\'mytheme\'),
    "id" => "mytheme_font",
    "std" => array(\'size\' => \'10px\', \'face\' => \'Arial\', \'color\' => \'#000000\'),
    "type" => "text",
 );
对于问题1,要引用嵌套数组,只需直接引用它们。

echo $options[\'std\'][\'size\'];

在表单输入中,如果使用Settings API:

name="mytheme_options[std][size]"

关于问题2,在我看来,你可能是做错了,因为你的代码没有真正意义。什么是get_option($value[\'id\'], $value[\'std\']); 应该怎么做?

您可以从数据库中获取选项数组,如下所示:

$options = get_option(\'mytheme_options\');

个人选项如下$options[\'name\']$options[\'std\'][\'face\'] 或者你有什么。

结束

相关推荐

警告:in_array()要求参数2为数组,给出的值为空

在一个运行版本3.1.3的新构建的站点上,有210个主题处于活动状态,没有插件,当我单击“媒体”进入媒体管理器时,我发现以下错误:警告:explode()要求参数2为字符串,数组在C:\\xamplite\\htdocs\\testsite\\wp includes\\query中给出。php在线2390警告:in\\u array()要求参数2为数组,C:\\xamplite\\htdocs\\testsite\\wp includes\\query中给出的为null。php在线2399警告:in\\u