【问题标题】:Keep custom GET parameters over POST request in WordPress在 WordPress 中通过 POST 请求保留自定义 GET 参数
【发布时间】:2015-08-04 12:13:18
【问题描述】:

我需要在 WordPress 中提交的任何表单上保留我的自定义 get 参数。例如,我有像 /wp-admin/post.php?post=493&action=edit&foo=bar 这样的帖子编辑 然后我点击更新就走了,url中没有foo。

我什至将 ?foo=bar 添加到 action='post.php' 中,但仍然没有。我还将 foo 添加到 public query_vars 。我搜索了很多,没有发现与此问题相关的任何内容。有没有办法做我想做的事?我可以使用 javascript/jquery 来操作表单。

【问题讨论】:

  • action='post.php' 是表单提交页面名称。???
  • 是的,但我的意思是我将
  • 我终于通过使用会话和注入像 action='post.php?foo=bar' 这样的 get 参数解决了这个问题。它不会在 url 中保留 foo=bar,但它会存储我需要的信息。
  • 如果您解决了问题,请将其标记为已解决或已回答。

标签: php wordpress post get


【解决方案1】:

我看到您已经使用 $_SESSION 解决了这个问题,但是对于需要这种功能并且出于任何原因无法使用会话的其他任何人,这也是一个选项:

<form action="post.php?<?= http_build_query($_GET); ?>">

它看起来有点难看,但它会将任何 _GET 参数重复到操作中。

为了测试,我采用了这种稍微糟糕的方式将所有内容组合在一起:

<form method="post" action="?<?= http_build_query($_GET);?>&<?= http_build_query($_POST);?>">
    <label> Test<input name="<?= time() ?>"></label>
</form>

注意:您必须提交几次才能开始出现在 url 中,因为第一次提交在 POST,然后在第二个帖子中添加到 GET。 (它总是看起来像是在后面,但如果你看一下 html 就会是正确的)。

最后说明:所有通过get, post and/or cookie发送的参数,都可以在$_REQUEST中找到。

【讨论】:

    猜你喜欢
    • 2015-10-20
    • 1970-01-01
    • 2016-10-17
    • 1970-01-01
    • 1970-01-01
    • 2012-12-02
    • 2013-04-17
    • 2017-06-29
    • 1970-01-01
    相关资源
    最近更新 更多