从逻辑上讲,我认为应该是这样的。。。
<input type="radio" id="my_category_layout">
<option value="Item1">Item 1</option>
<option value="Item2">Item 2</option>
<option value="Item3">Item 3</option>
</input>
但据我所知,单选按钮的标记不是这样的。
下面是我的现有代码,它创建了一个选择列表下拉菜单,允许我捕获所选值。我正在努力把它变成一个广播组。
主要的问题是,只有一个ID来表示select,但我不知道如何创建三个具有单个ID值的单选按钮,这些ID值可以传递来表示所选按钮。
我该怎么做?这是我现有的代码,用于创建具有单个id和多个值的select。。。
<?php
$mySelectOptions = array("list" => "List View", "grid1" => "Grid View Multi Column", "grid2" => "Grid View Two Column");
array( "name" => "Category Layout",
"desc" => "description goes here",
"id" => "my_category_layout",
"type" => "select",
"options" => $mySelectOptions ),
?>
<form method="post">
<?php foreach ($options as $value)
{
switch ( $value[\'type\'] )
{
case "select":
?>
<select class="input" 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"\';
} ?> value=\'<?php echo $option; ?>\'>
<?php echo $option; ?></option><?php } ?>
</select>
<?php
break;
case "radio":
?>
最合适的回答,由SO网友:onetrickpony 整理而成
case "radio":
foreach ($value[\'options\'] as $option) { ?>
<label for="<?php echo "{$value[\'id\']}_{$option}"; ?>">
<input
type="radio"
name="<?php echo $value[\'id\']; ?>"
id=<?php echo "{$value[\'id\']}_{$option}"; ?>
value="<?php echo $option; ?>"
<?php checked($option, get_settings($value[\'id\'])); ?>
/>
<?php echo $option; ?>
</label>
<?php }
break;
但我不建议这样编码主题/插件设置。
上面的数组不仅表示选项:value,还表示输入的类型、可能的值(description,id?)。。。这感觉不对。而且您使代码缺乏灵活性。
如果您稍后决定用无线电字段更改选择字段,该怎么办?或者,如果要添加描述该选项的图像或颜色选择器,该怎么办?
为什么您认为WP的核心选项没有这样编码?