我有简单的代码,这段代码用于主题选项
<?php function options_page() {
if ($_POST['update_options'] == 'true') {
update_option('color', $_POST['color']);
}
?>
<div class="wrap">
<div id="icon-options-general" class="icon32"><br /></div>
<h2><?php _e('Setting Theme', 'academi'); ?></h2>
<form method="post" action="">
<input type="hidden" name="update_options" value="true" />
<table class="form-table">
<tr valign="top">
<td class="tdleft"><label for="color"><?php echo get_option('color'); ?> <?php _e('Color Style: ', 'academi'); ?></label></td>
<td>
<select name="warna" id="warna">
<option value="">Change Fav Color</option>
<option value="aka-red" <?php echo (get_option('color'))? 'selected="selected"' : ''; ?>>Academi Red</option>
<option value="aka-green" <?php echo (get_option('color'))? 'selected="selected"' : ''; ?>>Academi Green</option>
<option value="aka-purple" <?php echo (get_option('color'))? 'selected="selected"' : ''; ?>>Academi Purple</option>
</select>
</td>
</tr>
</table>
<input class="submit" type="submit" value="Save Change" />
</form>
</div>
<?php } ?>
数据选项成功保存在数据库中,但选择的选项始终在Academi Purple上。示例I在选项选择中选择“Academi Red”而不是Save;此数据成功保存在数据库中,但选择的选项不在Academi Red上,而是在Academi Purple上。
答案 0 :(得分:1)
您的代码阅读起来非常棘手。
<?php echo (get_option('color'))? 'selected="selected"' : ''; ?>>Academi Purple</option>
这是你的条件陈述。
它的含义是IF get_option('color'),THEN set selected =“selected”。
只要您设置了选项'color',此语句将始终返回true。因此,所有选项都将被“选中”,最后一个选项将“赢”。
您需要修改此声明。
echo ((get_option('color') === 'aka-purple') ? 'selected="selected"' : '');