update_options不更新wp_options表

时间:2016-12-14 21:36:55

标签: php mysql wordpress

我正在为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表。

我错过了什么?

1 个答案:

答案 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所做的事情,因此也是一种鼓励,但这并不意味着你也应该这样做。