我正在为WordPress的管理区域制作一个表单。这是迄今为止的代码;
<form method="post" action=options.php">
<?php update_option('gpspl_options', $gpspl_options);?>
<input type="text" name="gpspl_options" value="$gpspl_options"/>
<input type="submit" value="Save Changes"/>
</form>
在管理区域的页面上,文本框自动填充“$ gpspl_options”。但是,当我添加文本并点击提交时,它不会更新数据库中的wp_options表。
我错过了什么?
答案 0 :(得分:0)
您始终会对update_option()
中存储的内容发送$gpspl_options
。您永远不会对发布的值($_POST['gpspl_options']
)执行任何操作。所以发布的值永远不会被保存。如果要保存发布的值,则需要以下内容:
if (isset($_POST['gpspl_options'])) {
update_option('gpspl_options', $_POST['gpspl_options']);
}
对于文本字段,您始终将文本字段初始化为文字字符串&#34; $ gpspl_options&#34; (不是变量$gpspl_options
的值)。要使用该值,您需要以下内容:
<?php
$gpspl_options = isset($_POST['gpspl_options']) ? $_POST['gpspl_options'] : '';
?>
<input type="text" name="gpspl_options" value="<?php echo $gpspl_options; ?>"/>
您可能希望阅读有关变量,变量名称,输出等的PHP入门教程。
尽管如此,所有这些逻辑和输出的混合并不是好的做法。它是Wordpress所做的事情,因此也是一种鼓励,但这并不意味着你也应该这样做。