如何在管理插件页面内触发$_GET请求?

时间:2013-05-20 作者:Derfder

我的插件函数中有以下表单:

<form method="get" action="" enctype="multipart/form-data">
  <p class="submit">
    <input type="hidden" name="do_it_hidden" value="run">
    <input name="do_it" type="submit" class="button-primary" value="DO IT!"> 
  </p>
</form>
前面代码中的php条件:

if (isset($_GET[\'do_it_hidden\'])) {
   // some code to execute here
} else {
   // just show the form
   <form method="get" action="" enctype="multipart/form-data">
     <p class="submit">
       <input type="hidden" name="do_it_hidden" value="run">
       <input name="do_it" type="submit" class="button-primary" value="DO IT!"> 
     </p>
   </form>
}
但点击按钮后,我被重定向到wp-admin/options-general.php?do_it_hidden=run&do_it=DO+IT 这不是我想要的。

单击之后,我只想重新加载页面并检查get条件是否为true。

如何做到这一点?

EDIT:

问题是,单击按钮后,我被重定向到完全不同的页面。我的插件位于此处:options-general.php?page=DD_Awesome_Plugin/DD_awesome_plugin.php 但点击按钮后,我发现:options-general.php?do_it_hidden=run&do_it=DO+IT

5 个回复
SO网友:Derfder

SOLVED! 我发现GET根本不起作用!您需要使用POST,并在表单操作中键入以下内容:

action="<?php admin_url(\'options-general.php?page=DD_Awesome_Plugin/DD_awesome_plugin.php\'); ?>"

该死在WP中有时很难完成简单的任务;)

SO网友:Shazzad

This should work

if (isset($_GET[\'action\']) && \'do_it_hidden\' == $_GET[\'action\'] ) {
   // some code to execute here
} else {
   // just show the form
   <form method="get" action="options-general.php">
     <p class="submit">
       <input type="hidden" name="action" value="do_it_hidden">
       <input type="hidden" name="page" value="<?php echo wp_unslash( $_REQUEST[\'page\'] ); ?>">
       <input name="do_it" type="submit" class="button-primary" value="DO IT!"> 
     </p>
   </form>
}
SO网友:fuxia

在表单处理程序中使用重定向:

if (isset($_GET[\'do_it_hidden\'])) {
    // some code to execute here

    wp_redirect( admin_url( "options-general.php" ), 303 );
    exit;
}
用户将被重定向到一个干净的URL,几乎不会注意到短URL的更改。或者使用POST请求完全避免更改URL。

SO网友:meekbot

<form method="get" action="do_it.php" enctype="multipart/form-data">
在表单的操作部分,您应该包含负责处理隐藏表单变量的php文件,当表单提交时,它会将该信息传递给您指定的文件。如果留空,它将发回您当前所在的页面,而该页面不是您想要的页面。

例如,常规选项窗体直接指向选项。管理中的php

<form method="post" action="options.php" enctype="multipart/form-data">
它使用该文件处理post信息,然后将用户重定向到显示页面,如下所示。

wp_redirect( admin_url( \'options-general.php?updated=true\' ) );

SO网友:Prince Singh
if (isset($_GET[\'do_it\']) && $_GET[\'action\'] ==\'do_it_hidden\') {
   // some code to execute here
} else {
   // just show the form
   <form method="get" action="general.php?page=<?php echo $_REQUEST[\'page\']?>" enctype="multipart/form-data">
     <p class="submit">
       <input type="hidden" action="do_it_hidden" value="run">
       <input name="do_it" type="submit" class="button-primary" value="DO IT!"> 
     </p>
   </form>
}
结束

相关推荐

单个(single.php)的父级

是否可以获取单个页面的父ID。。。。我是说没有一页我是说一个is\\u single()。。。页我有一个包含一些自定义帖子的页面,当我点击其中一个帖子时,我来到了这些主菜的单个页面。我想获得父页面的永久链接,我来自的页面。