虽然这不是特定于WordPress的问题,但也不是非WordPress问题。听起来您需要一些关于表单如何传递数据的指导。
If what you are really asking is how to get a plugin to pre-populate a form, you are best off asking the plugin\'s developer.
假设你想自己做这件事,这里有一个你需要知道的入门知识。
表单有两种(我们将要讨论的)发送数据的方法。这些是GET请求和POST请求。
让我们从一个字段开始,我们将其称为foo。
<form method="get">
<label for="foo">Foo</label><input type="text" value="" name="foo" />
<input type="submit" value="submit">
</form>
您会注意到,我将方法设置为get。这意味着表单数据(foo)将添加到URL的末尾。如果用户键入;条形图:
https://example.com/myform.php?foo=bar
您的用户数据将在中找到
$_GET[\'foo\']
. 但是,您需要检查它是否存在。
if(isset($_GET[\'foo\'])){
$foo = $_GET[\'foo\']; // or whatever
}
GET的优点是用户可以与其中的数据共享链接。缺点是用户可以与其中的数据共享链接。(这取决于你需要用它做什么)。
另一种方法是使用POST。像这样:
<form method="post">
<label for="foo">Foo</label><input type="text" value="" name="foo" />
<input type="submit" value="submit">
</form>
请注意,表单中的方法已更改。
This page 有表单方法指南。现在,表单数据将使用post方法(不在URL中)发送,并且可以通过post全局访问。
if(isset($_POST[\'foo\'])){
$foo = $_POST[\'foo\']; // or whatever
}
所以现在你想把这些数据换成另一种形式。以下是您可能的做法。
<?php
// other code maybe
$foo = \'\';
if(isset($_POST[\'foo\'])){
$foo = $_POST[\'foo\'];
}
?>
<form method="post">
<label for="foo">Foo</label><input type="text" value="<?php echo $foo; ?>" name="foo" />
<input type="submit" value="submit">
</form>
在最后一个示例中,我创建了一个名为$foo的空var。如果用户在帖子中向我们发送了一个foo,我会将该值添加到新的var中,然后在表单中吐出。这样,表格中就预先填写了我们刚得到的foo。
注意:这不是一种天生安全的做事方式。一个糟糕的演员可能会给你发送坏代码,这可能会破坏你的表单甚至整个网站。看看WordPress string sanitisation functions.
例如:
if(isset($_POST[\'foo\'])){
$foo = sanitize_text_field($_POST[\'foo\']);
}
这样更安全。
现在,您应该对表单如何传递信息有了一些了解。如果您正在创建自己的表单,这可能会对您有用。
至少,这应该让你开始。如果你被进一步的问题困住了,你总是可以带着更具体的问题回来。