Theme Option select values

时间:2013-02-12 作者:user156

我正在构建一个主题选项面板,到目前为止,除了“选择”类型选项外,其他都很成功。这是我的代码:

array( "name" => "Transition",
    "desc" => "Choose the type of transition.",
    "id" => $shortname."_transition",
    "type" => "select",
    "std"   => \'1\',
    "options" => array("0" => "None", "1" => "Fade", "2" => "Slide Top", "3" => "Slide Right"),
现在,我的选择代码是:

<select name="<?php echo $value[\'id\']; ?>" id="<?php echo $value[\'id\']; ?>">
<?php foreach ($value[\'options\'] as $option) { ?><option <?php if ( get_settings( $value[\'id\'] ) == $option) { echo \' selected="selected"\'; } elseif ($option == $value[\'std\']) { echo \' selected="selected"\'; } ?>><?php echo $option; ?></option><?php } ?>
现在,当我将该选项拉入主题时,它会输出选项名称(淡入、滑动顶部…等),而不是值(0、1、2、3)。

我猜也许我错过了value=""/option> 密码任何帮助都将不胜感激,谢谢。

Edit: figured it out, edited the second code to this:

<?php foreach ($value[\'options\'] as $key=>$option) { ?><option value="<?php echo $key; ?>" <?php if ( get_settings( $value[\'id\'] ) == $option) { echo \' selected="selected"\'; } elseif ($option == $value[\'std\']) { echo \' selected="selected"\'; } ?>><?php echo $option; ?></option><?php } ?></select>

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

有几件事需要注意:

  • get_settings() 已弃用,并且get_option() 应改为使用WordPress附带一个名为select() 这需要三个参数:Saved value、looped value、echo。与选项中支持HTML的“title”元素相比,您最好保存密钥。将数据保存在DB中更安全,因为输出不变,因此更易于比较。请参见与的比较$key, 因为我假设您将保存的值更改为实际值value 属性因此

    "0" => "None", "1" => "Fade", "2" => "Slide Top", "3" => "Slide Right"
    
    您应该设置更好的键:

    $effects = array(
         \'none\' => \'None\'
        ,\'fade\' => \'Fade\'
        ,\'slide-top\' => \'Slide Top\'
        ,\'slide-right\' => \'Slide Right\'
    );
    
最好的方法是获取slider JavaScript函数获取的真实值,并将其作为键。通过这种方式,您可以简单地回显它们并完成操作。

另一个优点是,您可以在不影响功能的情况下使您的值可翻译:__( \'Slide Right\', \'your_textdomain\' ).

以下是实际循环:

$html = \'\';
foreach ( $value[\'options\'] as $key => $option )
{
    $html .= sprintf(
         \'<option value="%s">%s</option>\'
        ,$key
        ,selected( get_option( $value[\'id\'] ), $key, false )
        ,$option
    );
}
echo "<select>{$html}</select>";

结束

相关推荐

WordPress theme options error

我正在构建一个主题,我需要调用主题选项,但当我在这里调用主题选项时,我确实会遇到诸如白色屏幕和500内部服务器错误之类的错误在WP查询中(PHP新手) <?query_posts (\'meta_key=post_views_count&orderby=meta_value_num&order=DESC&meta_value=get_option(mytheme_value);\');?> 也在我的前端表单中// ADD THE FORM INPUT TO $