我正在为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“。但是,当我添加文本并点击submit时,它不会更新数据库中的wp_options表。
我遗漏了什么?
发布于 2016-12-15 05:43:02
您总是对存储在$gpspl_options
中的任何内容调用update_option()
。您永远不会对已发布的值($_POST['gpspl_options']
)执行任何操作。因此,发布的值永远不会被保存。如果您想要保存已过帐的值,则需要如下所示:
if (isset($_POST['gpspl_options'])) {
update_option('gpspl_options', $_POST['gpspl_options']);
}
对于文本字段,您总是将文本字段初始化为文字字符串"$gpspl_options“(而不是变量$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所做的,因此是一种鼓励,但这并不意味着你也应该这样做。
https://stackoverflow.com/questions/41152625
复制相似问题