WP选项检测按下了哪个按钮

时间:2012-12-22 04:22:19

标签: wordpress-plugin wordpress

我正在创建一个自定义插件并有一个选项页面。单击保存按钮时,我的变量正在保存,但我想添加第二个按钮并检测按下了哪个按钮。我一直试图在按钮中放置名称并希望通过isset $ _POST ['name'] {}检测它们,但是当我单击保存或其他按钮时,它只是保存了我的变量,但是没有放POST变量中的任何内容。正如您在代码中看到的,一个按钮保存表单中的变量,另一个按钮保存并使用这些变量运行某些脚本。问题是我需要页面知道重新加载后点击了什么按钮,你可以看到我试图辨别最底部点击了哪个按钮。 我更喜欢php解决方案,所以我可以逐步增强。谢谢!

<div class="wrap">
<h2>Config Me Bro</h2>
<form method="post" action="options.php">
    <?php settings_fields('aug_options'); ?>
    <?php $options = get_option('data_value'); ?>
    <label for="">Checkbox</label>
          <input name="data_value[option1]" type="checkbox" value="1" id="" <?php checked('1', $options['option1']); ?> />
     <label for="general_title">Title</label>
           <input type="text" name="data_value[sometext]" id="general_title" value="<?php echo $options['sometext']; ?>" />

    <p class="submit">
        <?php submit_button('Save Changes', 'primary', 'save_config', false); ?>
        <?php submit_button('Run Config', 'secondary', 'run_config', false); ?>
    </p>
</form>
</div>
<pre> <?php print_r($_POST);?></pre>
<?php
}

/* Run Config Settings */
if (isset($_POST['run_config'])){
     echo '<h1>I am running</h1>';
}
/* Save config Settings */
elseif (isset($_POST['save_config'])){
   echo '<h1>Saved it</h1>';
}

1 个答案:

答案 0 :(得分:2)

以防您仍在寻找答案。此外,为了将来参考,以便我可以找到它,如果永远丢失...这是我已经做了,它似乎工作正常。

当您使用register_setting('group','setting')时,请确保使用第3个参数并定义回调函数。在回调中,您将能够访问提交的选项,还可以访问$ _POST变量。 $ _POST ['submit']是您正在寻找的。

在实践中......

register_settings('my_plugin_settings_group', 'my_plugin_settings', 'my_plugin_settings_callback');

function my_plugin_settings_callback( $posted_options ) {
    // $_POST['submit'] contains the value of your submit button
    if( $_POST['submit'] == 'Run Config' ) {
        // your code here
    }
    // $posted_options is an array with all the values submitted so you have to return it.
    return $posted_options;
}

我希望这有助于其他人。我一直在寻找答案,然后开始尝试。

  • RK